[英]C# SQlite Connection String Format
我在這里有一個兩部分的問題
1)我從這里下載了 SQLite: SQLite 網站,對於 .NET 4.5,有一個“混合”模式版本和“非混合模式”版本。 我怎么知道我應該使用哪一種?
建立連接時,我使用以下命令:
sqlite_conn = new SQLiteConnection("Data Source=db.db;Version=3;New=True;Compress=True;");
2)我假設的“Version = 3”代表正在使用的SQLite版本。 因此,如果我從上面的鏈接下載版本為 System.Data.SQLite 1.0.84.0 (3.7.15.2) 包,那么我應該將 Version=3 更改為 Version=3.7.15.2 嗎??
1.0.84.0 是SQLite DLL
的最新版本。 我也在c#
使用SQLite
創建了一個應用程序,我的連接字符串如下所示:
sqlite_conn = new SQLiteConnection("Data Source=C:\\SQLITEDATABASES\\SQLITEDB1.sqlite;Version=3;");
您使用的版本是SQLite
版本 3,DLL 只是一個不同的版本,但適用於SQLite
版本 3。
以下是不同類型的 Sqlite 連接字符串
基本的
Data Source=c:\\mydb.db;Version=3;
此類庫不支持版本 2。
內存數據庫SQLite 數據庫通常存儲在磁盤上,但數據庫也可以存儲在內存中。
Data Source=:memory:;Version=3;New=True;
使用 UTF16
Data Source=c:\\mydb.db;Version=3;UseUTF16Encoding=True;
有密碼
Data Source=c:\\mydb.db;Version=3;Password=myPassword;
SQLite 是用 C 編寫的。對於 Windows,它作為編譯的 32 位 (x86) .dll 分發。 這不能直接從 .NET 使用,因為它是本機代碼,而 .NET 程序通常不喜歡與本機代碼交互。 它可以通過稱為 COM Interop 的東西來完成,但在我手中這並不容易或漂亮。
在您的問題中,您引用了 System.Data.SQLite 的下載頁面。 這與普通的舊 SQLite 實現略有不同。 它采用 C SQLite 並用 .NET 代碼包裝它 - 允許 .NET 程序使用 C 本機代碼(萬歲,其他人完成了這項工作)。
當您在一個程序集中同時擁有本機代碼(C SQLite)和 .NET 代碼(包裝函數)時,這稱為混合模式程序集,最初將所有內容放在一個文件中是有意義的。 如果您正在進行開發或僅在您自己的機器上使用 SQLite,那么使用混合模式程序集就可以了。
但是,如果您想將應用程序分發給客戶,那么 64 位 Windows 的情況就發生了變化。 這是因為混合模式程序集只能在它們編譯的體系結構上運行(善意的謊言,但對於這個答案是正確的)。 從 System.Data.SQLite 1.0.80.0 版本開始,強烈建議您分發:1.) 全 .NET .dll System.Data.SQLite.dll,可以在 32 位或 64 位體系結構上運行)和 2 .) 32 位 .dll x86\\SQLite.Interop.dll 和 3. 64 位 .dll x64\\SQLite.Interop.dll
全 .NET 包裝器(第 1 項)確定它在哪個體系結構上運行,並相應地選擇 32 位或 64 位 .dll。
所有這些都在您引用的 System.Data.SQLite 下載頁面上進行了描述,但我發現它令人困惑,所以我提供了我的摘要。
您在問題中注意到的版本差異也是由於 SQLite 和 System.Data.SQLite 之間的差異。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.