我有一个访问数据库,我使用Visual Studio(.xsd)为它创建了一个类型化数据集,我想在其中添加一条新记录,但我有问题,因为它没有将数据添加到数据库中没有错误。 我的代码如下(摘要):
MyProjectDataSet.PAddressDataTable t=(MyProjectDataSet.PAddressDataTable)MyDataSet.Tables["PAddress"];
var r = t.NewPAddressRow();
r.PID = 44; // Person ID which this address belong
r.Address1 = "Line1";
r.Address2 = "Line2";
t.Rows.Add(r);
r.AcceptChanges();
t.AcceptChanges();
PAddressTableAdapter.Update(r);
我可以看到在将新行添加到表后,它出现在ID = -1的表上。但是当我更新行时,我无法在访问数据库中看到它,并且没有错误。
这段代码有什么问题?我不想使用Insert,因为我拥有的字段数非常高而Insert不接受Row数据。
答案 0 :(得分:1)
删除
r.AcceptChanges();
t.AcceptChanges();
行,然后再试一次。
答案 1 :(得分:0)
执行“更新”之前,请勿“AcceptChanges”。 “更新”依赖于“DataTable”中的更改信息来确定要执行的操作。完成“更新”后,提交给数据库的任何行都将在数据操作完成后自动接受其更改。