C# / accdb:收到错误“操作必须使用可更新的查询

本文关键字:可更新 查询 操作 accdb 错误 | 更新日期: 2023-09-27 18:30:55

我正在用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;
}

C# / accdb:收到错误“操作必须使用可更新的查询

SQL 看起来不错。 这似乎是一个权限问题,下面的文章概述了如何解决此问题:

http://www.mikesdotnetting.com/Article/74/Solving-the-Operation-Must-Use-An-Updateable-Query-error