本帖最后由 firck10322 于 2014-11-14 10:15:05 编辑

解决方案 »

  1.   

    1. 只会提交修改过的行,由于每一行被修改过的列可能都不相同,一个table只有一个DataAdapter,所以Command中带上所有的列,才能够保证提交所有修改
    2.跟并发没有半毛钱关系,之所以linq中会有冲突,是因为dc中对象默认都开启了状态更改跟踪,当对象的当前值、原始值、数据库中的值不一致时就产生了冲突,在SubmitChanges时,需要人为指定使用哪一种值来解决冲突
    http://technet.microsoft.com/zh-cn/magazine/bb386982(VS.100).aspx但是DataAdapter提交数据的原理就完全不一样了,它只认DataRow.RowState来执行相应的DBCommand,执行SQL期间产生的键/索引冲突跟linq sql中的也完全是两码事