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.");
    }
}

明らかに、この例外をキャッチして適切に処理する必要があります。

より良いアプローチは、新しいを追加する前に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 に答える