このアプリケーションでは、データテーブルに行を追加しています。テーブルに追加する前に行を検証したいのですが、データがビジネス要件を満たしていない場合、行は追加されません。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.");
}
}
明らかに、この例外をキャッチして適切に処理する必要があります。
より良いアプローチは、新しいを追加する前にUIで検証を行うことDataRow
です。
于 2012-09-12T16:19:17.610 に答える
0
DataGridViewがあるとします。dataGridView1_RowValidatingイベントを使用する必要があります。簡単なコードは次のとおりです。
private void dataGridView1_RowValidating(object sender、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 に答える