在向类型化数据集中添加行时出现问题

时间:2011-07-25 09:47:19

标签: ms-access dataset strongly-typed-dataset

我有一个访问数据库,我使用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数据。

2 个答案:

答案 0 :(得分:1)

删除

r.AcceptChanges();

t.AcceptChanges();

行,然后再试一次。

答案 1 :(得分:0)

执行“更新”之前,请勿“AcceptChanges”。 “更新”依赖于“DataTable”中的更改信息来确定要执行的操作。完成“更新”后,提交给数据库的任何行都将在数据操作完成后自动接受其更改。