TableAdapter Fill 不更新数据库

TableAdapter Fill doesn't update database

我想使用 DataSetTableAdapters 将数据插入到 MS Access 中,但不幸的是,当我 运行 时它不会更新 MS Access 中的 table此代码:

DataSet2TableAdapters.Tabelle1TableAdapter tabelle1TableAdapter = new DataSet2TableAdapters.Tabelle1TableAdapter();

DataSet2 dataSet2 = new DataSet2();
dataSet2.Tabelle1.Insert("hallo", 1);
tabelle1TableAdapter.Update(dataSet2.Tabelle1);

这只是我的实际 MS Access 文件中的一个测试文件 table 有很多列,所以我真的很喜欢使用 "Insert" 方法或类似的东西,因为它很容易编写。

关于如何完成此操作的一些建议?

不要填写您的 table,而是使用适配器中的插入功能。

有点像。

DataSet2TableAdapters.Tabelle1TableAdapter tabelle1TableAdapter = new DataSet2TableAdapters.Tabelle1TableAdapter();

Tabelle1TableAdapter.Insert(valueForID,ValueForWert,ValueForNummer);
Tabelle1TableAdapter.Update(dataSet2.mytable);

您只使用 fill 从数据库中读取数据

myadapter.fill(mydataset.mytable); // will read the data

Read More

这种情况下的一个常见缺陷是您的数据库文件可能会在 compile/execute 循环中被覆盖。下次编译项目时,您在一次执行中添加的所有内容都可能丢失,数据库文件将重置为初始状态。 VS 将原始 DB 文件存储在您的项目根文件夹中。您的应用程序使用自己存储在 bin 文件夹(或其他位置)中的副本。

您可以采取一些故障排除步骤来确定这是否确实是您的问题并最终解决它:1) 在解决方案资源管理器 window 中,右键单击您的数据库并 select 属性。将复制到输出目录更改为不复制。 2) 编译您的应用程序后,运行 在 VS 和调试环境之外运行几次并验证问题是否消失。 3) 修改现有代码以从数据库重新加载数据,在插入或删除成功执行后,并验证问题是否消失。

或者,如果您确切知道文件所在的位置,只需验证记录是否确实正确存储。