1
우리는 windows formms를 사용하고 있습니다. 양식에서 우리는 새로운 행을 삽입하고 기존 행을 함께 업데이트하는 gridview를 가지고 있습니다. 그리고 아래의 프로세스 InsertCommand
잘 작동하고 아래 adap.Update(deltaTable);
에서 예외가 발생동시성 위반 : UpdateCommand가 예상 한 레코드 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가 예상 한 기록의 영에 영향을 미쳤다. 우리는 업데이트 방법 전에 acceptchanges를 추가하려고 시도했지만, 변경은 변경에 영향을주었습니다. 행이 삭제되지 않았습니다.
모든 의견을 환영합니다.
미리 감사드립니다.
안부
Row.AcceptChanges()
당신이 본 적이 있소 어디서든 당신이 [이] (http://stackoverflow.com/questions/3388100/concurrency-violation-the-updatecommand- 영향을받은 0 개의 예상 레코드 수) 및 [this] (http://stackoverflow.com/questions/9521355/concurrency-violation-the-updatecommand-affected-0-of-the-expected-1 -records-v) 이것을 새로운 질문으로 게시하기 전에? –또는 this http://stackoverflow.com/a/32558609/2946329 –
ConflictOption.OverwriteChanges를 추가하면 저장 또는 임의의 동작이 여러 번 반복됩니다. – user703526