//dataset.AcceptChanges();   
sqlAdapter.Update(dataset,"Query");   这个顺序改一下
 这样写
sqlAdapter.Update(dataset,"Query");
dataset.AcceptChanges(); sqlAdapter.DeleteCommand=sqlCmdBuilder.GetDeleteCommand();
sqlAdapter.InsertCommand=sqlCmdBuilder.GetInsertCommand();
sqlAdapter.UpdateCommand=sqlCmdBuilder.GetUpdateCommand();
这三行并不需要的

解决方案 »

  1.   

    解决并发冲突 1.执行用于在 Try...Catch 块中更新数据库的命令。 
    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.
    }
      

  2.   

    引起冲突的原因和可能是数据的冲突,例如有重复的主键等等
    为了避免数据冲突,应该有sqlAdapter.FillSchema(dataset,...);
    把表结构也读进来之后相应的一些冲突就会在改DataSet里的数据的时候就表露出来,
      

  3.   

    string customErrorMessage;
       customErrorMessage = "Concurrency violation\n";
       customErrorMessage += ex.Row[0].ToString();用这个运行出来,报错: Concurrency violation dvd这是什么意思