根据这篇文章: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'是'type',在给定的上下文中无效。
我尝试声明一个新的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实际上包含“INSERTED”的数据,然后填入数据表。
但是,ta.Update(NDT);
仍未更新我的数据库...
答案 0 :(得分: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);