2012-12-06 87 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

另外,確保文件不是隻讀。

相關問題