2012-12-06 33 views
2

我运行的ISS服务器的更新的查询,我有位于C访问文件:\ WCF \ ACCESS \ 我使用此查询中插入了一句:访问DB:操作必须使用

@"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; 
       } 
     } 

问题是这样的错误:

Operation must use an updateable query

当我在本地测试在我自己的机器上,它工作正常。只是不在IIS中。

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

的权限不应该是一个问题:

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

+0

插入完成后,您是否关闭连接? – Derek

+0

是的,我愿意。该代码在本地工作。 –

+0

你可以显示你的代码吗? – Derek

回答

5

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

+0

我知道这一点。但现在它正在工作。我拼命地完全访问了所有内容,访问文件夹,上面的文件夹,访问文件,锁定文件和网站文件夹。 现在这个问题似乎已经解决了。谢谢 –

1

这个问题的解决方案很简单。以管理员身份运行该应用程序。我试了3次,它的工作很完美

+0

这是真的,所以+1,但我会注意到这个简单的解决方案工作,因为默认情况下,管理员权限允许创建和删除文件。但是,以管理员身份运行应用程序违反了最佳实践,因此一些IT部门不会对简单方法感到满意;因此了解目录权限角度是有帮助的。 – phoog

0

另外,确保文件不是只读。

相关问题