2016-06-30 3 views
0

データセット内の変更された値でデータベースを更新しようとすると、データベース内の一部の値を手動で変更すると、データセットのfillメソッドが実行された後(私は手動で行を削除し、私はデータアダプタのメソッドの更新を呼び出すしようとする場合、私は例外を取得します)。データセットの塗りつぶしを行う前にデータベース行の値が変更されているかどうかを確認する方法

データセットに「ダーティリード」があるかどうかを確認するにはどうすればよいですか。

+0

コードを投稿してください。 –

+0

http://pastebin.com/wPXuhzVyこれは私と同様のものです...行の元の値がデータベースの現在の値と異なる場合、更新する前にどのようにチェックする必要がありますか(ダーティリードと呼ばれるもの) )。私はちょうど同意の例外を得るだろうと思ったが、私の仮定が間違っているようだ。 – user3097132

+0

私の答えを参照してください。希望が役立ちます。 –

答えて

0

いくつかのオプションがあります。比較して にするために、元のエンティティセットのコピーを維持

  • は、あなたはそれが汚い だかどうかを知る必要がある時点で汚い決意です。

  • Datarowのrowstateプロパティをチェックし、変更されている場合は、現在および元のDataRowVersionsの値を と比較します。 2番目の が元の値と同じ値になる場合は、 RejectChangesを呼び出すことができますが、これは行のすべての変更を拒否します。 は、行ごとまたはテーブルごとの変更を だけ保持するため、手動で各フィールドを追跡する必要があります。

関連する問題