首页 > 解决方案 > C# dataGridView_RowValidating() 不在存在错误的同一行中保留焦点,为什么?

问题描述

点击这里查看快照

我有一个带有 DataGridView 的表单来更新数据库中的表。我想将焦点保留在当前行中,直到清除 sql 错误。我是通过以下方式做到的,但问题是:

“错误是在下一行而不是当前行中捕获的。”

为什么会这样???

这是我的代码:

    private void dataGridView1_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
    {
        try
        {
            cb = new SqlCommandBuilder(da);
            da.Update(dt);
        }
        catch (SqlException ex)
        {
            if (ex.Number == 2601)
            {
                e.Cancel = true;
                MessageBox.Show("Duplicate Ticket", "Stop", MessageBoxButtons.OK, MessageBoxIcon.Stop);
            }
        }
    }

标签: error-handlingtry-catchsqlexception

解决方案


推荐阅读