I'm using SQLite with C# and have some tables with foreign keys defined.
Now, I know that by default foreign key constraints are not enforced in SQLite, but I'd like to turn them ON.
Is it possible to do this through code? I have looked up a related question, but I'm not sure how to do it through C# code. I'm using the latest plug-in of SQLite available for Visual Studio 2008 for designing my tables.
conn.Open(); SQLiteCommand cmd = new SQLiteCommand("PRAGMA foreign_keys = ON", conn); cmd.ExecuteNonQuery(); conn.Close();
I need this change to persist when this connection is reopened. Is it possible?
SQLite has supported foreign key constraint since version 3.6. 19.
The error message itself showing there is a foreign key constraint error, which means you are deleting a parent table where the child table contains the Primary table identifier as a foreign key. To avoid this error, you need to delete child table records first and after that the parent table record.
Finally figured this out from this post. The PRAGMA foreign_key setting does not persist but you can set it every time the connection is made in the ConnectionString. This allows you to use Visual Studio's table adapters.
data source=C:\Dbs\myDb.db;foreign keys=true;
(replace C:\Dbs\myDb.db with your sqlite database).If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With