我正在開發將由工人的小團隊可以使用(最多15個)和它ACCDB文件訪問存儲數據的應用程序。當我在一臺機器上自己測試應用程序時,我沒有任何問題,但是當至少有兩個人連接到數據庫時,應用程序會向用戶發出奇怪的錯誤。數據庫存儲在網絡上的共享文件夾中,每個用戶的應用程序訪問該文件夾以打開數據庫文件。每個用戶在數據庫的機器上都有自己的系統帳戶,並且代碼中的每個函數都可以從其他線程訪問數據庫,因此一次只能嘗試一次連接嘗試。每個連接都在同一個功能中關閉。所有的數據庫函數都被寫入一個單例類。C#/ MS訪問:數據庫連接錯誤
的錯誤,我得到:
System.Data.OleDb.OleDbException (0x80004005): Could not use 'D:\Shared\nscm\nscm_db.accdb'; file already in use.
System.Data.OleDb.OleDbException (0x80004005): Cannot open database ''. It may not be a database that your application recognizes, or the file may be corrupt.
System.Data.OleDb.OleDbException (0x80004005): Too many active users. **(this error even when there's only two users!)**
這是推動我瘋了。 JET4/ACE引擎的問題是它們不能正確支持多用戶訪問?
我在考慮改變DATABSE不同,如MS SQL Server Express的或MySQL的東西,但我不知道哪一個是最容易遷移到,哪些是真正的自由。
預先感謝您的幫助和關注!
UPDATE: 數據皈依是不是我的問題。該應用程序仍在開發中,因此沒有真實的數據。我更擔心代碼和SQL查詢中的更改。而且我不確定切換到其他數據庫技術後是否會遇到其他問題。我現在的問題是:如果我一直在努力糾正目前技術中的某些問題,我正在使用Access數據庫引擎還是有一個已知的問題,並且在這個上浪費時間是毫無價值的,它會變得更簡單,開始使用某種數據庫服務器(MySQL)更快?
您是否打開了ms訪問GUI並保持alter table頁打開? – nawfal 2012-04-08 18:07:30