【发布时间】:2012-04-25 16:18:42
【问题描述】:
我正在用 C# 编写一个连接到 MS Access 数据库 (.accdb) 的应用程序。该应用程序将被多个工作人员使用,并且每个工作人员都会不时连接到数据库 - 以刷新他们的状态(刷新登录时间)。
连接到同一数据库的所有其他功能似乎都可以正常工作,但这个却不行。由于某种原因,我收到以下错误,它说问题出在我的ExecuteNonQuery() 所在的行。命令文本用字符串 myUpdateNonquery 定义。
System.Data.OleDb.OleDbException (0x80004005): Operation must use an updateable query.
功能:
public Boolean RefreshSignIn()
{
Boolean successful = false;
lock(dbLock)
{
try
{
string myConnectionString = connectionType + primarydbPath;
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
string myUpdateNonquery = "UPDATE AgentSignIn SET signInTime = NOW() WHERE agentName = @p1";
using(myConnection)
{
OleDbCommand myCommand = new OleDbCommand(myUpdateNonquery, myConnection);
using(myCommand)
{
myCommand.Parameters.Add("@p1", OleDbType.Char).Value = appSettings.mynick;
myConnection.Open();
int updatedRows = myCommand.ExecuteNonQuery();
if (updatedRows>0) {successful = true;}
}
}
}
catch(System.Exception ex)
{
MessageBox.Show("Error! Failed to keep you signed in to the database!\n\n"+ex.ToString());
}
}
return successful;
}
【问题讨论】: