我在C#中使用SQLite,並且有一些外鍵已定義的表。在SQLite中啓用外鍵約束
現在,我知道默認情況下,外鍵約束不會在SQLite中強制執行,但我想打開它們。
是否有可能通過代碼來做到這一點?我查了一下相關的question,但我不知道如何通過C#代碼來完成。我正在使用可用於Visual Studio 2008的SQLite的最新插件來設計我的表格。
conn.Open();
SQLiteCommand cmd = new SQLiteCommand("PRAGMA foreign_keys = ON", conn);
cmd.ExecuteNonQuery();
conn.Close();
當需要重新打開此連接時,我需要此更改才能保留。可能嗎?
我正在使用SqliteDataAdapter,它管理連接的打開和關閉。我相信當連接關閉時,這些信息就會丟失。我怎樣才能讓這些信息持續存在? – kaustubh 2010-11-23 09:26:17
@kaustubh:你說得對,foreign_key編譯指示是會話本地的。我不知道SqliteDataAdapter是如何工作的,但它似乎在其構造函數中使用了SQLConnection參數。您可以在創建連接時發佈該連接的編譯指示嗎? – 2010-11-23 09:35:41
似乎沒有辦法在連接字符串中指定此信息。有什麼方法可以指定每次打開連接時執行的命令? – kaustubh 2010-11-23 09:49:29