[英]How do I access an Access database protected by a username/password in Access workgroups via Jet?
我發現此頁面建議將“ Jet OLEDB:System Database”項目添加到我的連接字符串中,然后為Open
提供一個用戶名和密碼參數。 不幸的是,.NET OleDb類似乎沒有這個……我嘗試下面的代碼以防萬一:
testConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbFile +
";Jet OLEDB:System Database=" + Path.GetDirectoryName(mdbFile) + "\\system.mdw;" +
"Jet OLEDB:System Username=***;Jet OLEDB:System Password=***");
但這似乎掛了很長時間,然后拋出“找不到可安裝的ISAM” DbException
。
有人有什么想法嗎?
編輯:我嘗試使用下面的連接字符串,該字符串停止了異常,但不允許我訪問任何表,就像在沒有正確設置工作組的情況下打開Access時發生的情況。
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbFile +
";Jet OLEDB:System Database=" + Path.GetDirectoryName(mdbFile) + "\\system.mdw;" +
"User ID=***;Password=***";
我現在感覺像個白痴,但不小心在該頁面上滾動了一下,我注意到某些連接字符串具有“用戶ID”和“密碼”參數。 更改連接字符串以使用這些字符串,而不是嘗試將其傳遞給“ Jet OLEDB:*”解決了該問題。
即,我的最終連接字符串為:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + mdbFile +
";Jet OLEDB:System Database=" + Path.GetDirectoryName(mdbFile) + "\\system.mdw;" +
"User ID=***;Password=***";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.