在我们的应用程序中,我们在数据表中添加一行。我想在将行添加到表之前验证该行,如果数据不符合业务要求,则不会添加该行。 我认为RowChanging甚至是我需要添加验证码的地方。但是,如何阻止将行添加到DataTable?
答案 0 :(得分:1)
我认为可以阻止在RowChanging
事件处理程序中添加行的唯一方法是抛出异常:
if (e.Action == DataRowAction.Add) {
if (e.Row["SomeColumn"].ToString() == "AnInvalidValue") {
throw new InvalidOperationException("You can't do that.");
}
}
你显然必须抓住这个例外并优雅地处理它。
更好的方法是在尝试添加新DataRow
之前在用户界面中进行验证。
答案 1 :(得分:0)
假设我们有一个DataGridView。您必须使用dataGridView1_RowValidating事件。下方是一个简单的代码:
私有无效dataGridView1_RowValidating(对象发送者,DataGridViewCellCancelEventArgs e) {
return {
sessionData: state.sessionData,
requesting: state.requesting,
hasError: state.hasError
status: state.status,
requesting: true,
hasError: false,
status: undefined,
};