为什么我不能用C#将数据插入本地数据库(SQL Compact Edition)?

Ada*_*Ada 3 c# database

我在Visual Studio上做一个项目.我正在使用本地数据库(空sql server紧凑版).我选择了数据集并创建了我的表格(图像).它有一个主自动增量id列和一个nvarchar ImagePath列.我想在其中插入数据,这是我的代码.

SqlCeConnection con = new SqlCeConnection();
con.ConnectionString = yeniApplicationDatabase.Properties.Settings.Default.DatabaseEdaConnectionString;
con.Open();
using (SqlCeCommand com = new SqlCeCommand("INSERT INTO Images (ImagePath) VALUES ('book')", con))
{
  com.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么但是这个没有给出任何错误,语法(SQL)没问题.但是,当我检查表数据时,它仍然是null.这是事情;

在同一次运行中,
我执行该代码,然后执行另一个从图像中选择*...
它显示'book'.但是,表数据仍然是空的,当我重新运行它而不插入时,只从图像中选择,它又消失了.我真的不明白发生了什么.为什么我不能在我的数据库中放任何东西?

我还添加了con.Close()但它仍然不起作用.

reg*_*gie 8

SqlCeConnection con = new SqlCeConnection();
con.ConnectionString =  yeniApplicationDatabase.Properties.Settings.Default.DatabaseEdaConnectionString;
con.Open();
SqlCeCommand com = new SqlCeCommand("INSERT INTO Images (ImagePath) VALUES ('book')", con);

com.ExecuteNonQuery();


com.Dispose();
con.Close();
Run Code Online (Sandbox Code Playgroud)

关闭连接应完成插入.

编辑:更新解决方案

您正在查看哪个数据库文件(.sdf)以检查是否已插入数据.检查bin\Debug文件夹中.sdf中测试表的内容.我相信您的数据已正确插入bin\Debug文件夹中的数据库文件中.

刚刚在堆栈溢出时发现了一个类似的问题:为什么我不能将记录插入到我的SQL Compact 3.5数据库中?我坚信你的问题是完全一样的.您正在检查错误的数据库文件.

  • 我已经更新了答案.尝试将代码放在try catch块中.并查看它是否给您一个错误或成功执行 (2认同)