Share via


連接字串

連接字串可用來指定連線至資料庫的方式。 Microsoft.Data.Sqlite 中的連接字串遵循標準 ADO.NET 語法,是以分號分隔的關鍵字和值清單。

關鍵字

下列連接字串關鍵字可與 Microsoft.Data.Sqlite 搭配使用:

資料來源

資料庫檔案的路徑。 DataSource (沒有空格) 和 Filename 都是此關鍵字的別名。

SQLite 會處理的是相對於目前工作目錄的路徑。 您也可以指定絕對路徑。

若為空白,則 SQLite 會在磁碟上建立暫存資料庫,此資料庫在連線關閉時即會刪除。

若為 :memory:,則會使用記憶體內部資料庫。 如需詳細資訊,請參閱記憶體內部資料庫

開頭為 |DataDirectory| 替代字串的路徑,其處理方式會與相對路徑相同。 如有設定,則會讓路徑變成相對於 DataDirectory 應用程式定義域屬性值。

此關鍵字也支援 URI 檔案名稱

模式

連線模式。

Description
ReadWriteCreate 開啟資料庫以供讀取和寫入,若資料庫不存在則會加以建立。 這是預設值。
讀寫 開啟資料庫以供讀取和寫入。
ReadOnly 以唯讀模式開啟資料庫。
記憶體 開啟記憶體內部資料庫。

Cache

連線所用的快取模式。

描述
預設 使用基礎 SQLite 程式庫的預設模式。 這是預設值。
私人 每次連線都會使用私人快取。
共用 連線會共用快取。 此模式可變更交易和資料表鎖定的行為。

密碼

加密金鑰。 如有指定,開啟連線後即會立刻傳送 PRAGMA key

警告

當原生 SQLite 程式庫不支援加密時,密碼不會有任何作用。

注意

3.0 版本已新增 Password 關鍵字。

外部索引鍵

為一個值,用來指出是否要啟用外部索引鍵限制式。

注意

3.0 版本已新增 Foreign Keys 關鍵字。

描述
True 在開啟連線後立刻傳送 PRAGMA foreign_keys = 1
False 在開啟連線後立刻傳送 PRAGMA foreign_keys = 0
(空白) 不會傳送 PRAGMA foreign_keys。 這是預設值。

若將 SQLITE_DEFAULT_FOREIGN_KEYS 用來編譯原生 SQLite 程式庫 (例如在 e_sqlite3 中),則無須啟用外部索引鍵。

遞迴觸發程序

為一個值,用來指出是否要啟用遞迴觸發。

注意

3.0 版本已新增 Recursive Triggers 關鍵字。

描述
True 在開啟連線後立刻傳送 PRAGMA recursive_triggers
False 不會傳送 PRAGMA recursive_triggers。 這是預設值。

預設逾時

執行命令的預設逾時 (秒)。 預設值是 30。 Command Timeout 是此關鍵字的別名。

您可以使用 DefaultTimeout 覆寫此值,而該關鍵字可透過 CommandTimeout 覆寫。

注意

6.0 版本已新增 Default Timeout 關鍵字。

Pooling

為一個值,用來指出是否會共用連線。

注意

6.0 版本已新增 Pooling 關鍵字。

描述
True 將會共用連線。 這是預設值。
False 不會共用連線。

連接字串建立器

您可以使用 SqliteConnectionStringBuilder 作為建立連接字串的強類型方式。 其也可用來防範連接字串插入式攻擊。

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = password
}.ToString();

範例

基本

具有共用快取的基本連接字串,可用來改善並行。

警告

不建議混合共用快取模式和預寫記錄。 為了獲得最佳效能,當資料庫設定為使用預寫記錄時,請移除 Cache=Shared

Data Source=Application.db;Cache=Shared

Encrypted

加密的資料庫。

Data Source=Encrypted.db;Password=MyEncryptionKey

唯讀

應用程式無法修改的唯讀資料庫。

Data Source=Reference.db;Mode=ReadOnly

記憶體中

記憶體內部的私人資料庫。

Data Source=:memory:

可共用的記憶體內部

由名稱 Sharable 所識別的可共用記憶體內部資料庫。

Data Source=Sharable;Mode=Memory;Cache=Shared

另請參閱