【发布时间】: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 语句都有效”不匹配。这也可能意味着您应该或可以将连接字符串调整为与您的实际数据库文件匹配的版本。