0

在我们的应用程序中,我们正在向数据表中添加一行。我想在将行添加到表之前对其进行验证,如果数据不符合业务要求,则不会添加该行。我认为 RowChanging 甚至是我需要添加验证代码的地方。但是,如何防止该行被添加到 DataTable 中?

4

2 回答 2

1

我认为可以阻止在RowChanging事件处理程序中添加行的唯一方法是抛出异常:

if (e.Action == DataRowAction.Add) {
    if (e.Row["SomeColumn"].ToString() == "AnInvalidValue") {
        throw new InvalidOperationException("You can't do that.");
    }
}

您显然必须捕获此异常并优雅地处理它。

更好的方法是在尝试添加新的DataRow.

于 2012-09-12T16:19:17.610 回答
0

假设我们有一个 DataGridView。您必须使用 dataGridView1_RowValidating 事件。一个简单的代码如下:

私人无效dataGridView1_RowValidating(对象发送者,DataGridViewCellCancelEventArgs e){

        if (dataGridView1.IsCurrentRowDirty==true)
        {
            if (dataGridView1.Rows[e.RowIndex].Cells["FirstName"].Value.ToString() == "")
            e.Cancel = true;
            MessageBox.Show("Please enter Student FirstName");
        }
    }
于 2018-10-01T19:58:08.987 回答