C#SQL Server CE未插入

SqlCeConnection sqlCnn = new SqlCeConnection(Properties.Settings.Default.mainDBConnectionString); SqlCeCommand sqlCmd = new SqlCeCommand( "INSERT INTO desktopItems (Location,Label) VALUES (@Location, @Label)", sqlCnn); sqlCnn.Open(); sqlCmd.Parameters.Add("@Location", openExe.FileName.ToString()); sqlCmd.Parameters.Add("@Label", openExe.SafeFileName.ToString()); sqlCmd.ExecuteNonQuery(); sqlCnn.Close(); 

我有这个代码但是当我运行程序时,数据库没有更新…

通常,这种情况是由可视化数据库中的简单错误引起的。
您的INSERT按预期工作,但您检查插入是否成功查看错误目录中的数据库。

DATADIRECTORY替换字符串与WinForms应用程序一起使用意味着,在调试时,您的数据库应位于基础项目文件夹的目录BIN\DEBUG
Visual Studio确保是这种情况,因为在您的项目中,数据库文件标记为“ Copy To The Output Directory ”属性设置为Copy Always或“ Copy If Newer

当您在Visual Studio的调试会话中运行代码时,就会发生插入。

然后使用SERVER EXPLORER连接检查执行结果。 但是此连接指向项目文件夹中的原始数据库,当然,新记录不存在。

通常,项目文件夹中的数据库使用正确的模式和初始数据保持最新部署,但没有任何仅为调试目的而插入的记录。

所以你可以简单地向指向BIN \ DEBUG中的数据库的SERVER EXPLORER添加一个新连接,重命名它(如’DEBUG-DB’)并保留原始连接,以防你需要更改数据库模式中的某些内容在发布您的申请之前。