2012-03-26 82 views
1

我有一個.net應用程序不能在同事計算機上工作(他遠程工作,所以很難診斷問題)。從Access數據庫加載數據時出現該錯誤。這裏是我用來加載數據的代碼:訪問數據加載失敗.net

var constring = @"Provider=Microsoft.JET.OLEDB.4.0;Data Source=X:\db.mdb"; 
OleDbConnection c = new OleDbConnection(constring); 
c.Open(); 
var dataSet = new DataSet(); 
var adapter = new OleDbDataAdapter("SELECT * FROM Table", c); 
adapter.Fill(dataSet); 
c.Close(); 

什麼能在這個階段導致錯誤?如果未安裝Access或錯誤的版本,此代碼是否會中斷?還有什麼其他的東西可能會導致這段代碼崩潰

編輯:不是C:\,而是X:\,這是一個共享網絡驅動器。

+5

是什麼錯誤?使用斷點將其縮小到讓您頭疼的特定行。 – 2012-03-26 13:21:51

+5

提供實際的錯誤將幫助 – Quintium 2012-03-26 13:22:01

+0

@Daniel,他的同事是遙遠的。儘管如此可能會有幫助 – Simon 2012-03-26 13:24:04

回答

1

乍一看; - 有機器 沒有供應商 - 沒有源文件C:\ db.mdb - 源文件(數據庫)不正確(沒有表名稱表)

+0

除非它是一個非常舊的XP系統,該提供者應該存在..可能DB不存在... – gbianchi 2012-03-26 13:26:39

+0

此外,用戶可能沒有對c:\ db.mdb文件的權限 – Cronan 2012-03-26 13:27:08

+0

Db不存在?這是什麼意思?你能詳細解釋一下嗎? – sooprise 2012-03-26 13:42:35

1

當然,既然你有沒有說你有什麼錯誤,這只是一個猜測:

我見過很多情況下,Jet的VPN連接性能非常緩慢。這通常導致嘗試讀取數據超時。 數據庫是真的位於C:\db.mdb?如果它位於網絡驅動器上,t適配器在填充數據集時可能會超時,尤其是在表中有相當數量的數據時。

如果這是您的問題的原因,那麼您可以重寫應用程序以僅檢索需要的記錄,並在需要時進行檢索。

在我的公司,我們有一臺電腦坐在我們的辦公室,供遠程用戶使用我們的Access應用程序。他們使用遠程桌面登錄到該計算機;由於機器位於我們的LAN上,因此性能與本地用戶相同。

如果您可以爲您的問題添加更多細節,我們可能會提供更多有用的建議。