【发布时间】:2012-04-22 18:29:25
【问题描述】:
我在尝试用 C# 清除 DataTable 时遇到重大问题。
在编辑数据库中的信息时,我使用了类似的东西
somethingTableTableAdapter1.Update(greenParksDataSet);
greenParksDataSet1.AcceptChanges();
而且效果很好。但是,在我的一个表格中,我有一个按钮来清除打开的表格。似乎清除了内存中的 DataTable,但实际上并未将更改传播到数据库。基本上代码归结为
greenParksDataSet.HistoryTable.RecieptIDColumn.AutoIncrementSeed = -1;
greenParksDataSet.HistoryTable.RecieptIDColumn.AutoIncrementSeed = -1;
greenParksDataSet.HistoryTable.RecieptIDColumn.AutoIncrementSeed = 1;
greenParksDataSet.HistoryTable.RecieptIDColumn.AutoIncrementSeed = 1;
greenParksDataSet.HistoryTable.Rows.Clear();
historyTableTableAdapter.Update(greenParksDataSet);
greenParksDataSet.AcceptChanges();
我试过搞乱事物的顺序,但似乎没有任何效果。单独使用该代码,DataTable 被清除(并且更改显示在 DataGridView 中),但是在之后添加historyTableTableAdapter.Fill(greenParksDataSet.HistoryTable); 时,显示数据库没有发生任何更改。
我可能遗漏了一些明显的东西,但多年来我一直对此感到困惑,如果有任何帮助,我将不胜感激。谢谢!
【问题讨论】:
-
AcceptChanges被TableTableAdapter.Update隐式调用,因此它是冗余的。