1

ユーザーが DataTable にバインドされた DataGridView でデータを追加/編集/削除できるようにしています。それはすべてうまくいきます。データはデータベースに正常に更新されます。ただし、DataTable には、CreatedOn や CreatedBy など、DataGridView に表示したくないフィールドがいくつかあります。データ アダプターに更新される前に、行の状態に基づいてこれらの列に値を書き込む必要があります。この場合、データ テーブルで TableNewRow と RowChanged のイベント ハンドラを接続し、データ アダプタが更新されて AcceptChanges が発生する前に行列を操作する必要がありますか?

ご意見ありがとうございます。

ライアン

4

1 に答える 1

2

これは私が理解したものであり、うまく機能します。データ テーブルをデータ アクセス クラスに戻した後、テーブル内の行をループし、DataRowState をチェックします。DataRowState に基づいて列の値を設定しました。

foreach (DataRow row in dt.Rows)
            {
            if (row.RowState == DataRowState.Added)
                {
                row["CreatedOn"] = DateTime.Now;
                row["CreatedBy"] = GlobalProp.UserName;
                row["ModifiedOn"] = DateTime.Now;
                row["ModifiedBy"] = GlobalProp.UserName;
                }
            else if (row.RowState == DataRowState.Modified)
                {
                row["ModifiedOn"] = DateTime.Now;
                row["ModifiedBy"] = GlobalProp.UserName;
                }
            }

それが他の誰かを助けることを願っています!

R

于 2012-09-28T18:38:15.127 に答える