【问题标题】:Access database engine cannot update that data in tableAccess 数据库引擎无法更新表中的数据
【发布时间】:2016-02-26 21:40:25
【问题描述】:

我正在尝试在 C# 的 GUI 中将新行插入到表 Project 中。当我单击“创建项目”并运行该方法时,会出现此错误:

“System.Data.OleDb.OleDbException”类型的未处理异常 发生在 System.Data.dll

附加信息:Microsoft Office Access 数据库引擎 无法更新 Project 中的数据。

我的数据库中有一些触发器,但我认为这不是问题的原因。当我在 Visual Studio 中调试程序并将我的 SQL 语句直接插入 Access 时,它工作得很好,但由于某种原因,当我使用 OleDbConnection 时,它就搞砸了。

这是 SQL 语句:

INSERT INTO Project (projectType, projectStatus, projectStartDate, projectDueDate, projectRate, clientNo, accountNo) 
VALUES ('State Audit', 'In-Progress', #5/2/2015#, #5/31/2015#, 125, 8, 18);

这是我正在使用的代码:

public void Connect(string sql)
{
    try
    {
        dbConn = new OleDbConnection(connectionString);
        dbConn.Open();
        cmd = new OleDbCommand(sql, dbConn);
        cmd.ExecuteNonQuery();
        dbConn.Close();
    }
    catch
    {
        MessageBox.Show("Invalid Connection");
    }
}

【问题讨论】:

  • 你的连接字符串看起来如何?
  • 连接字符串很好,我所有的其他 sql 语句都可以工作,只是由于某种原因不是这个。
  • 您能否更深入地研究异常,看看您是否获得了有关插入不起作用的更多信息。您可以做的一件事是捕获异常catch(Exception ex),以便检查它。
  • 这是有史以来最整洁的事情。我不知道你能做到这一点。谢谢(你的)信息!错误说:Microsoft Office Access 数据库引擎无法更新 Project 中的数据。更新数据所需的最低版本为 14.0.0000.0000。我假设这意味着我只需要更新版本?
  • 可以,但与“我的所有其他 sql 语句都有效”不匹配。这也可能意味着您应该或可以将连接字符串调整为与您的实际数据库文件匹配的版本。

标签: c# sql ms-access


【解决方案1】:

我在使用 Delphi 应用程序更新 Access 表时遇到了类似的问题。我发现问题出在数据宏上。

我创建了表,并且最初能够使用 Delphi 应用程序毫无问题地更新和插入。然后我为表分配了一个更新后数据宏。这导致我收到与您遇到的类似的错误,尽管它在 Access 中运行良好。删除宏并没有解决问题。我最终删除了表并重新创建它。这解决了问题。幸运的是,我只是在测试数据宏是否适用于我的应用程序。

【讨论】:

    猜你喜欢
    • 2021-10-01
    • 2010-11-16
    • 1970-01-01
    • 2021-06-25
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多