我有一個應用程序,我想在與應用程序相同的文件夾中創建一個數據庫。我查看了.NET 4.0的SQLite,一切看起來都很好,直到出現異常「無法加載文件或程序集」System.Data.SQLite,Version = 1.0.88.0,Culture = neutral,PublicKeyToken = db937bc2d44ff139'或其依賴項之一。試圖加載格式不正確的程序。「 SQLite與控制檯.NET應用程序一起工作。我根本不想使用SQL Server。除了XML文件是否還有其他選擇?爲WPF應用程序創建本地數據庫
回答
我發現多了一個解決這個問題。問題出在平臺(x86/x64)上。我獲得了Sqllite v1.0.88的源代碼並打開了VS 2010解決方案文件。我注意到目標是默認混合平臺。我將其更改爲任何CPU並構建了System.Data.SQLite.2010項目。我在我的項目中引用了這個dll,並且我沒有遇到x86/x64平臺的問題。一個DLL爲兩者工作。
SQLite是您描述的場景的絕佳選擇。放棄SQLite,因爲你不能正確包含它似乎是錯誤的結論。通過NuGet引用它,你很好。圖書館需要SQLite.Interop.dll
,您可能沒有正確包含該圖書館。當您在x86環境下運行時,您可能還會加入類似x64版本的內容(有關詳細信息,請參閱this)。通過NuGet使用它,你應該沒問題。
這裏是快速設置我得到了不到5分鐘的工作中:
- 通過的NuGet 安裝
- 創建控制檯應用程序(桌面,.NET V4,任何CPU,調試VS快車2012)
- 使用下面的代碼
- 工程就像一個魅力!
代碼示例:
string dataSource = "SQLiteDemo.db";
SQLiteConnection connection = new SQLiteConnection();
connection.ConnectionString = "Data Source=" + dataSource;
connection.Open();
SQLiteCommand command = new SQLiteCommand(connection);
command.CommandText = "CREATE TABLE IF NOT EXISTS beispiel (id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name VARCHAR(100) NOT NULL);";
command.ExecuteNonQuery();
command.CommandText = "INSERT INTO beispiel (id, name) VALUES(NULL, 'Test-Datensatz!')";
command.ExecuteNonQuery();
command.Dispose();
connection.Dispose();
我試圖通過NuGet引用它,但仍然遇到同樣的問題。即時通訊使用VS 2010和針對任何CPU,.NET 4.0和我也在VS 2012中打開相同的解決方案 –
奇怪的是,爲我工作(調整了更多細節的答案) – meilke
當我創建一個控制檯應用程序它適用於我但不適用於引用相同dll的wpf應用程序 –
- 1. 何時爲應用程序創建本地(SQLite)數據庫?
- 2. WPF應用程序與本地數據庫
- 3. 安裝WPF應用程序並創建數據庫
- 4. 如何在android中爲我的應用程序創建本地數據庫
- 5. 在哪裏保存爲iphone應用程序創建的本地數據庫?
- 6. 應用程序本地數據庫
- 7. 爲WPF應用程序創建用戶
- 8. 在本地應用程序數據下創建目錄
- 9. 如何爲Web應用程序和Android應用程序創建雲數據庫
- 10. 帶數據庫的WPF應用程序
- 11. 創建本地Web應用程序
- 12. 用表中的數據創建應用程序數據庫
- 13. aspnet_regsql - 爲mysql或postgresql數據庫創建應用程序服務數據庫
- 14. 爲應用程序創建音樂家數據庫
- 15. 如何爲我的應用程序創建索引數據庫
- 16. 如何爲Android創建數據庫應用程序?
- 17. 爲iOS應用程序創建數據庫
- 18. 爲Android應用程序創建SQLite數據庫
- 19. 如何爲React Native應用程序創建Realm數據庫?
- 20. 爲網站和移動應用程序創建數據庫
- 21. 爲字典應用程序創建數據庫
- 22. 如何爲iphone應用程序創建默認數據庫?
- 23. SPA應用程序爲什麼不創建數據庫?
- 24. 爲外部應用程序創建Rails數據庫條目
- 25. 無法爲Rails應用程序創建生產數據庫
- 26. 在Netbeans 8.0.2中爲Android應用程序創建數據庫
- 27. 爲Windows窗體應用程序創建SQL數據庫
- 28. 爲Android應用程序創建數據庫
- 29. 在本地機器上爲遠程數據庫創建數據庫快照
- 30. 創建android應用程序數據庫數據量大
[這個問題](http://stackoverflow.com/questions/4839342/sql-server-compact-4-0-vs-sqlite)對於相同的場景有一些很好的指導 – Jonesopolis
你可以嘗試很多東西清潔和重新構建解決方案,重新啓動IDE,有時某些進程使用特定的DLL來結束該進程。這只是一些構建問題,所以不需要遷移到其他東西。 –