2010-08-11 50 views
1

我想在C#中訪問我的數據庫。該數據庫是SQLite和我試圖訪問它,像這樣:需要加載DLL才能在C#中使用SQLiteWrapper

string CurrentDatabase = Path.FullName + "\\stock.sqlite"; 

SQLiteBase db = new SQLiteBase(CurrentDatabase); 

我使用的SQLite DLL我發現這裏訪問數據庫:

http://www.codeproject.com/KB/database/cs_sqlitewrapper.aspx

但我得到這個錯誤:

Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

我想我知道什麼是錯的,我沒有這個sqlite3 DLL我的系統上的任何地方......但我想這個應用程序是移動的,因此我CA不期望用戶已經安裝了這個DLL。我已經閱讀了關於從另一個應用程序加載DLL的情況,Firefox已經是一個很好的例子。它安裝在我所有的公司機器上,如果我能從Firefox Program Files目錄加載sqlite3 DLL到我的應用程序,它應該完美運行,不是嗎?如果這真的是解決方案,我將需要實際加載DLL的幫助,因爲我不知道該怎麼做。

謝謝。

回答

4

將sqlite3.dll複製到您的DLL包裝所在的同一目錄中,並在完成時提供該應用程序的可分發部分,這樣就不會有與dll版本控制不匹配相關的廢話。您可以下載最新版本http://sqlite.org

+0

只是另一個快速問:如果我添加一些DLL作爲參考,通過轉到項目 - >添加引用,然後瀏覽它,編譯時將生成的.exe具有該DLL或我需要維護文件結構? – Kratz 2010-08-11 18:23:10

+0

@Kratz:DLL將被捆綁併成爲應用程序的一部分,而不是物理地結合到EXE中,更多的人將擁有一個文件,這將是EXE,並且其支持的DLL將與.EXE位於同一文件夾中是住在。 – t0mm13b 2010-08-11 18:24:35

+1

這很好,謝謝。另外,當我嘗試添加sqlite3.dll文件作爲參考,我得到這個錯誤:'對C:\用戶\用戶名\ Documents \ Visual Studio 2008 \項目\股票更新\ sqlite3.dll'的引用無法添加。請確保該文件是可訪問的,並且它是一個有效的程序集或COM組件.' – Kratz 2010-08-11 18:26:59

1

我推薦使用System.Data.SQLite,它是SQLite的ADO.NET提供程序。然後,您可以使用ADO.NET API進行編程。它的DLL包含sqlite3.dll,所以你不必包含它。

相關問題