强类型数据集dataset12中存在“底盘“和“车辆”两个表,“底盘”是“车辆”的父表,对两个表中的数据进行修改之后,进行提交。这个时候出现问题,就是“车辆”表的数据总是没有提交到数据库。填充数据集
sqlDataAdapter2.Fill(dataset12.底盘);
sqlDataAdapter1.Fill(dataset12.车辆);结束编辑
dataset12.底盘[0].EndEdit();
dataset12.车辆[0].EndEdit();提交更新到数据库
sqlDataAdapter2.Update(dataset12.底盘);
sqlDataAdapter1.Update(dataset12.车辆);

解决方案 »

  1.   

    难道没有报错吗?
    1,表一定要有主键.
    2,Dataset.AcceptChanges()
      

  2.   

    没有报错。两个表都有主键。如果把上面的提交更新改为
    sqlDataAdapter2.Update(dataset12.底盘.GetChanges());
    sqlDataAdapter1.Update(dataset12.车辆.GetChanges());在执行sqlDataAdapter1.Update(dataset12.车辆.GetChanges());时会出现错误如下:未处理的“System.Data.DBConcurrencyException”类型的异常出现在 system.data.dll 中。其他信息: 并发冲突: UpdateCommand 影响 0 个记录。
      

  3.   

    问题终于解决,问题出在并发冲突。因为sqlDataAdapter2.Update(dataset12.底盘.GetChanges()); 先修改了数据库,数据库接着级联修改了“车辆”表,使得在执行
    sqlDataAdapter1.Update(dataset12.车辆.GetChanges()); 的时候找不到数据库里面有匹配的数据记录,所以没有修改成功
      

  4.   

    问题终于解决,问题出在并发冲突。因为sqlDataAdapter2.Update(dataset12.底盘.GetChanges()); 先修改了数据库,数据库接着级联修改了“车辆”表,使得在执行
    sqlDataAdapter1.Update(dataset12.车辆.GetChanges()); 的时候找不到数据库里面有匹配的数据记录,所以没有修改成功