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