我无法使用 C# 语句更新 Access 2007 表

Posted

技术标签:

【中文标题】我无法使用 C# 语句更新 Access 2007 表【英文标题】:I cannot update an Access 2007 table using C# statements 【发布时间】:2013-06-13 18:18:24 【问题描述】:

我正在尝试使用 C# 应用程序将记录添加到 MS Access 表 2007。我的表由 3 个字段组成:IDNamephone

例如,我尝试使用以下数据为某个人添加记录:ID=1Name=Boulisphone=1212422。查询没有返回任何错误,但我没有在我的表中找到这些数据。

但最令人惊讶的是,当我尝试添加相同的先前数据时,我收到错误消息:

“您请求对表的更改不成功,因为它们会在索引、主键或关系中创建重复值。更改包含重复数据的字段或字段中的数据、删除索引或重新定义索引以允许重复条目,然后重试。”

private void button1_Click(object sender, EventArgs e)

    OleDbConnection con = new OleDbConnection();

    string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\boulis.accdb;;Persist Security Info=False ";

    con.ConnectionString = ConnStr;
    con .Open();
    MessageBox.Show("The connection is available now");
    OleDbCommand cmd = new OleDbCommand();
    cmd.CommandText = "INSERT INTO info(ID, Name, phone) Values(@StudIDTxt, @StudNameTxt, @StudCNCITxt)";
    cmd.Parameters.AddWithValue("@StudIDTxt",1);
    cmd.Parameters.AddWithValue("@StudNameTxt", "boulis");
    cmd.Parameters.AddWithValue("@StudCNCITxt", 1212422);

    cmd.Connection = con;
    cmd.ExecuteNonQuery();
    MessageBox.Show("table is already updated");

【问题讨论】:

你说的这段代码在哪里?请张贴。 【参考方案1】:

您在第二次尝试时收到的错误消息清楚地表明第一次尝试成功。如果您在 C# 中执行 INSERT 之前已经在 Access 中打开了表,那么您将无法看到新记录,直到您也

在 Access 中关闭并重新打开表,或者

刷新数据表视图(或表单,或其他)。这可以通过单击“主页”选项卡的“记录”部分中的“全部刷新”按钮来完成(无论如何,在 Access 2010 中)。

【讨论】:

我已经刷新并重新打开了数据库但没有任何变化。

以上是关于我无法使用 C# 语句更新 Access 2007 表的主要内容,如果未能解决你的问题,请参考以下文章

Access 2007 - “无法更新;当前已锁定”

MS Access 2007 中的多个联合语句中的嵌套错误

在 access 2007 中更新组合框值

Access 2007:无法识别的数据库格式

如何使用c#连接到access 2007

如何在 C# 中使用 Access 2007 链接表管理器