//dataset.AcceptChanges();
sqlAdapter.Update(dataset,"Query"); 这个顺序改一下
这样写
sqlAdapter.Update(dataset,"Query");
dataset.AcceptChanges(); sqlAdapter.DeleteCommand=sqlCmdBuilder.GetDeleteCommand();
sqlAdapter.InsertCommand=sqlCmdBuilder.GetInsertCommand();
sqlAdapter.UpdateCommand=sqlCmdBuilder.GetUpdateCommand();
这三行并不需要的
sqlAdapter.Update(dataset,"Query"); 这个顺序改一下
这样写
sqlAdapter.Update(dataset,"Query");
dataset.AcceptChanges(); sqlAdapter.DeleteCommand=sqlCmdBuilder.GetDeleteCommand();
sqlAdapter.InsertCommand=sqlCmdBuilder.GetInsertCommand();
sqlAdapter.UpdateCommand=sqlCmdBuilder.GetUpdateCommand();
这三行并不需要的
2.如果引发异常,则检查 Catch 语句的 Row 属性,以确定导致冲突的原因。
3.根据您的应用程序业务规则添加代码来解决错误。 try
{
SqlDataAdapter1.Update(myDataset);
}
catch (DBConcurrencyException ex)
{
string customErrorMessage;
customErrorMessage = "Concurrency violation\n";
customErrorMessage += ex.Row[0].ToString();
// Replace the above code with appropriate business logic
// to resolve the concurrency violation.
}
为了避免数据冲突,应该有sqlAdapter.FillSchema(dataset,...);
把表结构也读进来之后相应的一些冲突就会在改DataSet里的数据的时候就表露出来,
customErrorMessage = "Concurrency violation\n";
customErrorMessage += ex.Row[0].ToString();用这个运行出来,报错: Concurrency violation dvd这是什么意思