我是sqlite的初学者。现在我试图在样本Northwind数据库中插入新记录。我的C代码如下:
SQLiteConnection myConnection = new SQLiteConnection();
myConnection.ConnectionString = @"Data Source=|DataDirectory|\northwindEF.db";
using (myConnection)
{
SQLiteCommand myCommand = myConnection.CreateCommand();
myCommand.CommandText = "INSERT INTO Categories(CategoryID,CategoryName,Description) VALUES(11,'Bakery','Baked goods such as bread and cakes')";
myConnection.Open();
myCommand.ExecuteNonQuery();
myConnection.Close();
}
当我运行这个程序时,我没有得到任何错误。但我的新记录并没有插入表中。我的密码怎么了?请帮帮我。
最佳答案
这是一个常见的陷阱。将在服务器资源管理器中建立到存储在项目文件夹中的数据库文件的连接。然后,在运行时将数据库复制到输出目录,并且每个insert、update和delete都针对该数据库工作。在服务器资源管理器中,没有任何更改,因为数据库不同。如果属性'Copy to the output directory'
设置为Copy always
,也会发生同样的情况。在这种情况下,每次运行时,输出目录中的数据库都会被从项目根文件夹中获取的新副本覆盖,并且每次删除、更新或插入都会在下次运行时消失。