Access DB:操作必须使用可更新的查询

时间:2012-12-06 17:54:29

标签: c# visual-studio-2010 ms-access oledb

我正在运行ISS服务器,我有一个位于C:\ WCF \ Access \中的访问文件 我正在使用此查询插入一些内容:

@"INSERT INTO Arbejdsindsats (MedarYdelID, StartTid, SlutTid) VALUES ('" + medarYdelID + "', '" + startTid + "', '" + slutTid + "')";

完整的代码是:

public String GemArbejdsIndsats(String medarYdelID, String startTid, String slutTid)
        {
            try{
            con.Open();
            String command = @"INSERT INTO Arbejdsindsats (MedarYdelID, StartTid, SlutTid) VALUES ('" + medarYdelID + "', '" + startTid + "', '" + slutTid + "')";
            cmd.CommandText = command;
            cmd.ExecuteNonQuery();
            con.Close();


                return "success: medarydelid: " + medarYdelID + " startTid: " + startTid + " slutTid: " + slutTid;
            } catch(Exception e)
                {
                    String k = e.Message;
                    return k;
                }
        }

问题是这个错误:

  

操作必须使用可更新的查询

当我在自己的机器上进行本地测试时,它运行正常。只是不在IIS中。

奇怪的是,有一个laccdb文件。它不会消失。也许数据库被锁定了,这就是为什么我无法更新它?

许可不应成为问题:

img http://img.ctrlv.in/50c0dbf8670d8.jpg

3 个答案:

答案 0 :(得分:5)

用户帐户必须能够写入文件及其所在的文件夹;它应该能够创建和删除文件夹中的文件。 laccdb文件的存在并不一定意味着访问已锁定数据库。它的存在可能是由于以下任何一种情况造成的,其中一种情况可能是用户帐户无权从文件夹中删除文件。

答案 1 :(得分:1)

这个问题的解决方案非常简单。以管理员身份运行该应用程序。我尝试了3次,效果很好

答案 2 :(得分:0)

此外,请确保该文件不是只读的。