返回首页

我有两个表,首先是与称为MaGV主键的主要原因之一,第二次到MaGV字段也称为MaGV引用。

我创建两个DataTable相应的数据存储在数据库中的两个表。

在这两个DataTable的数据修改后,我开始更新回适配器使用两个表,但有两种情况:

1。如果使用像的这DataTable.GetChanges():

adapter.Update(FirstDataTable.GetChanges();

adapter.Update(SecondDataTable.GetChanges());
冲突约束的异常将被抛出,我可以理解,只是在第一次更新不能更新主表,特别是更新应该增加一个新行到表与MaGV = 1(例如),但它没有,没有任何与MaGV = 1,在主表的行。

然后第二次更新,在我的情况下,将插入新行到第二个表,当然,与MaGV = 1,将抛出异常。
2。如果不使用DataTable.GetChanges(),将所有的更新成功,像这样:
{C}我不明白为什么更新的GetChanges()不能做得很好,似乎的GetChanges()返回null?

能否请您分析问题,并给我的任何想法吗?

任何您的帮助表示高度赞赏!

非常感谢你!

回答

评论会员:游客 时间:2012/02/06
UJimbo:你可以尝试调用之前调用的GetChanges的AcceptChanges?的AcceptChanges完编辑表imgsrc=原谅我,如果它似乎愚蠢的,你已经做了,它真的是一种野生的猜测,根据我读过
RaisKazi
评论会员:游客 时间:2012/02/06
。指出你的问题的确切原因,这是不容易然而,你可能会发现你的DataTable的行,这是通过使用下面的代码错误/问题。codeprelang="cs"ChangedDataTable=FirstDataTable.GetChanges(); spanclass="code-keyword"if/span(ChangedDataTable.HasErrors){DataRow[]drErrors=ChangedDataTable.GetErrors();}/pre/code的