gpt4 book ai didi

C# - 从 DataGridView 更新 MS Access 表时发生并发 Access 冲突

转载 作者:太空宇宙 更新时间:2023-11-03 16:28:06 25 4
gpt4 key购买 nike

我在从 DataGridView 更新 Access 表时遇到了一些问题。令我困惑的是,下面的代码适用于一张表而不适用于另一张表,但它们都具有完全相同的结构。

表格

我有两个包含多个(相同)字段的表,其中主键是一个名为“Number”的字段;该字段是自动增量的,并且在两个表中都没有重复索引。因此,我了解到缺少主键是并发冲突的根源,但这似乎不是这里的问题。

代码

这是我的代码的相关部分,收集在一起:

初始化

BindingSource BS = new BindingSource();
DbDataAdapter adapter;
DataTable table = new DataTable();
OdbcCommand command = new OdbcCommand(query, odbcConnection);
OdbcDataAdapter adapter = new OdbcDataAdapter(command);
adapter.AcceptChangesDuringUpdate = true; // Attempt to fix the issue
adapter.AcceptChangesDuringFill = true; // same
DbCommandBuilder commandBuilder = new OdbcCommandBuilder(adapter);
dgv.DataSource = BS;
BS.DataSource = table;
adapter.Fill(table);

保存更改

OdbcCommandBuilder builder = new OdbcCommandBuilder((OdbcDataAdapter)adapter);
adapter.UpdateCommand = builder.GetUpdateCommand(); // Fix attempt
adapter.Update(table); // Where the exception is thrown

考虑到我的问题是随机发生的,具体取决于所使用的数据库,我认为它与数据库相关,但它们具有相同的结构,并且都没有被使用(复制到我的本地驱动器上)所以我真的不知道发生了什么事。

最佳答案

可能存在与其他表定义的关系,这可能会阻止某个字段的更新。

此外,表可能包含用于检查数据有效性的索引或表达式,这会阻止更新表。

您检查过这些可能性了吗?

关于C# - 从 DataGridView 更新 MS Access 表时发生并发 Access 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11846503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com