2017-07-26 55 views
0

我遇到以下問題,當嘗試向Access數據庫中插入新記錄時,出現「必須使用可更新查詢」。試圖插入新記錄時訪問「必須使用可更新查詢」

的代碼是:

OleDbConnection Conn = new 
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data 
Source=Checkbook.accdb;"); 
string SQL = "Insert into Category (CategoryDescription) values('Pizza')" 
OpenDatabase(); //This does a Conn.Open(); 
OleDbCommand myAccessCommand = new OleDbCommand(SQL, Conn); 
myAccessCommand.ExecuteNonQuery(); 
CloseDatabase(); 
+0

假設【類別】是一個表(而不是保存查詢),它聽起來就像是運行代碼僅有讀取訪問數據庫文件的過程。檢查該文件*和其所在文件夾的權限*以確保運行代碼的帳戶對文件和文件夾都具有寫入權限。 (該文件夾的寫訪問是必需的,Jet數據庫引擎可以創建.laccdb鎖定文件。) –

+0

我對文件和文件夾的必要寫權限。它仍在發生。 – user1275351

+0

是否'Category'表有任何其他字段不是自動編號,不允許空? ''values'後面還需要一個空格。 – SunKnight0

回答

0

您的代碼應該可以正常工作的寫入。假設打開和關閉方法中缺少的代碼不會發生任何異常。通過將文件設置爲只讀在文件系統上,可以輕鬆地再現出現的錯誤。您可以在屬性窗口中驗證。

Read Only Database

如果你看到只讀複選框被選中,你可以在Windows資源管理器文件的屬性刪除它。

如果您在此處沒有看到將文件設置爲只讀,並且您具有正確的文件權限,請查看是否有其他內容被鎖定。您可以通過創建一個新的訪問數據庫並重新創建表並將您的代碼指向測試數據庫來進行測試。如果發生相同的錯誤,您知道機器上存在全局問題。如果您沒有相同的問題,那麼原始數據庫可能有問題。

相關問題