0

我在尝试清除 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);之后添加一个时,显示数据库没有被更改。

我可能错过了一些明显的东西,但多年来我一直对此感到困惑,任何帮助将不胜感激。谢谢!

4

2 回答 2

0

看看这个问题/答案

Clear 仅适用于内存中的数据表 - 它不会将它们标记为删除。

于 2012-04-22T18:33:07.340 回答
0

我认为您正在使用绑定源,因此请尝试以下操作:

greenParksDataSet.HistoryTable.Rows.Clear();
HistoryTableBindingSource.EndEdit();

historyTableTableAdapter.Update(greenParksDataSet);
greenParksDataSet.AcceptChanges();
于 2012-04-22T18:40:41.057 回答