1
Windowsフォームを使用しています。フォームでは、新しい行を挿入して既存の行を一緒に更新するグリッドビューがあります。そして、以下のプロセスのためにInsertCommand
が正常に動作し、以下のようにadap.Update(deltaTable);
に例外をスロー同時実行違反: - UpdateCommandが予期された1つのレコードの0に影響を受けました
OracleDataAdapter adapter = new OracleDataAdapter(sql, conn);
OracleCommandBuilder oraCmdBuilder = new OracleCommandBuilder(adapter);
OracleDataAdapter adap = new OracleDataAdapter();
adap.SelectCommand = new OracleCommand(sql, conn);
adap.InsertCommand = oraCmdBuilder.GetInsertCommand();
adap.InsertCommand.Connection = conn;
adap.UpdateCommand = oraCmdBuilder.GetUpdateCommand();
adap.UpdateCommand.Connection = conn;
adap.DeleteCommand = oraCmdBuilder.GetDeleteCommand();
adap.DeleteCommand.Connection = conn;
adap.UpdateBatchSize = 100;
int i = adap.Update(deltaTable);
、
同時実行違反、コードです:UpdateCommandのは、予想1つの レコードの0影響を受けます。 updateメソッドの前にacceptchangesを追加しようとしましたが、その変更は削除に影響していました。行は削除されませんでした。
どのようなご提案も歓迎します。
ありがとうございます。私はこの問題に、あなたが更新する前に、元のデータとデータを制御しているあなたのupdate
クエリでの理由
1)の下に直面し
よろしく
Row.AcceptChanges()
あなたが気づいたどこにでもいる[この](http://stackoverflow.com/questions/3388100/concurrency-violation-the-updatecommand-影響を受けた1つのレコードのうちの1つ)と[this](http://stackoverflow.com/questions/9521355/concurrency-violation-the-updatecommand-affected-0-of-the-expected-1 -records-v)これを新しい質問として投稿する前に? –またはこれhttp://stackoverflow.com/a/32558609/2946329 –
ConflictOption.OverwriteChangesを追加すると、保存または任意のアクションが複数回繰り返されます。 – user703526