1
在使用c#代碼和Visual Studio或SQLite創建我的數據庫時使用SQLite數據庫專家個人一切工作正常。當試圖添加數據到數據庫使用SQLite專家個人我的外鍵約束工作正常,但是當我嘗試插入數據使用C#我可以添加數據違反外鍵約束。有人可以告訴我爲什麼嗎?SQLite中的外鍵
繼承人我的C#代碼:
SQLiteCommand cmd = new SQLiteCommand("INSERT INTO tblLicenseInfo
(UserID, MachineID, ExpirationDate, DateOfChange, LicenseKey)
VALUES (2, 1, '2014-04-03 12:15:00', '2014-04-03 12:15:00', '123123erer')", SqLite);
在孤單與tblUser
沒有UserID = 2
進入和與MachineID = 1
沒有進入。當我在Expert Personal中嘗試使用相同的SQL語句時,它顯示錯誤消息,但在Visual Studio中不會引發任何異常 - 數據只是插入到我的表中(當我用Expert Personal打開數據庫時,可以看到條目)。
非常感謝。
編輯:
我現在又增加了一些代碼,所以它看起來是這樣的:
SQLiteCommand foo = new SQLiteCommand("PRAGMA foreign_keys = ON;", SqLite);
SQLiteCommand cmd = new SQLiteCommand("INSERT INTO tblLicenseInfo
(UserID, MachineID, ExpirationDate, DateOfChange, LicenseKey)
VALUES (2, 1, '2014-04-03 12:15:00', '2014-04-03 12:15:00', '123123erer')", SqLite);
SqLite.Open();
foo.ExecuteNonQuery();
cmd.ExecuteNonQuery();
SqLite.Close();
這仍然是錯的?我仍然可以將數據插入到我的數據庫中。