0

根据这篇文章: http: //msdn.microsoft.com/en-us/library/xzb1zw3x.aspx,在我在数据集中插入/更改数据后,我需要调用 UPDATE 以将我的数据库数据与数据集数据同步.

我的问题是这样的:

我创建了一个名为 dataset1.xsd 的数据集,然后创建了一个新的 TableAdapter 来执行我的 INSERT 查询,然后我需要以某种方式让我的数据库知道数据集中的内容已更改。

DataSet1TableAdapters.reservationsTableAdapter ta = new DataSet1TableAdapters.reservationsTableAdapter();

ta.Insert(LastName,Arrival,Departure);  // this is where I do the INSERT query

现在我应该更新数据集,对吧?我该怎么做呢?我在上面发布的文章建议做这样的事情:

ta.Update(DataSet1.reservationsDataTAble);

但是,我不能这样做,因为:

错误 - “myproject.DataSet1.reservationsDataTable”是一个“类型”,在给定的上下文中无效。

我尝试声明一个新的 Dataset1 DataTable,然后对其进行更新,但它仍然不会显示我的数据库中的任何更改。

但是,我知道更改保存在 DataSet 中,因为当我稍后填写新数据表时,记录就在那里。

编辑:感谢下面的评论,我尝试这样做以进行更改:

DataSet1.reservationsDataTable NDT = new DataSet1.reservationsDataTable();                   

DataSet1TableAdapters.reservationsTableAdapter ta = new DataSet1TableAdapters.reservationsTableAdapter();

ta.Insert(LastName,Arrival,Departure);

ta.Fill(NDT);   
ta.Update(NDT);

...我可以看到(在调试器中)NDT 数据表 DID 实际上包含“插入”的数据,然后填充到数据表中。

但是,ta.Update(NDT);仍然没有更新我的数据库...

4

1 回答 1

0

我假设这However, the ta.Update(NDT); still did not update my database意味着没有执行 sql-insert 并且你没有异常。

这对你有用吗?

var myDataSet1 = new DataSet1();

var newReservation = myDataSet1.reservations.NewRow();

newReservation.LastName=...
newReservation.Arrival=...
newReservation.Departure=...

myDataSet1.reservations.AddreservationsRow(newReservation);

var ta = new DataSet1TableAdapters.reservationsTableAdapter();

ta.Update(myDataSet1.reservations);
于 2013-07-02T16:27:19.697 回答