Vb.net 在我的Windows窗体应用程序中使用Sqlcompact数据库时遇到问题

Vb.net 在我的Windows窗体应用程序中使用Sqlcompact数据库时遇到问题,vb.net,winforms,visual-studio-2010,ado.net,sql-server-ce,Vb.net,Winforms,Visual Studio 2010,Ado.net,Sql Server Ce,我已经搜索了很多关于我的问题,但没有解决方案,所以我张贴在这里,以获得专家的建议 我正在制作一个windows窗体应用程序,并使用Sql compact数据库 我的问题是: 当我使用代码运行时在数据库中插入记录时,它们被插入、删除、更新,我可以在我的应用程序中看到它们被更新、插入、删除,但当我关闭应用程序并重新启动时,它们只会被更改几次,每百万次:。否则我会再次看到空白数据库,或者如果我直接从解决方案资源管理器VisualStudio2010将值放入数据库中,它们将永远留在那里。我使用的是简单的

我已经搜索了很多关于我的问题,但没有解决方案,所以我张贴在这里,以获得专家的建议

我正在制作一个windows窗体应用程序,并使用Sql compact数据库

我的问题是:

当我使用代码运行时在数据库中插入记录时,它们被插入、删除、更新,我可以在我的应用程序中看到它们被更新、插入、删除,但当我关闭应用程序并重新启动时,它们只会被更改几次,每百万次:。否则我会再次看到空白数据库,或者如果我直接从解决方案资源管理器VisualStudio2010将值放入数据库中,它们将永远留在那里。我使用的是简单的update、insert、delete语句,但不确定为什么在关闭应用程序时对数据库所做的更改会消失

首先,这对所有人来说是:

   Dim con As New SqlCeConnection
   Dim command As New SqlCeCommand

   connectionString = "Data Source=SqlCompactDatabase/RestaurantDatabase.sdf"
    con.ConnectionString = connectionString

    command.Connection = con
    con.Open()
我的插入代码:

            command.CommandText = "Insert into Inventory(itemcode,itemmin,itemmax,itemdesc) Values('" + itmcod + "','" + min + "','" + max + "','" + desc + "')"
            command.ExecuteScalar()
我的更新代码:

    command.CommandText = "update Inventory set itemMin='" + min + "',itemMax='" + max + "',instock='" + stock + "',itemDesc='" + desc + "' where itemcode='" + TextBox1.Text + "'"
    command.ExecuteScalar()
我的删除代码:

      command.CommandText = "delete from inventory where itemcode='" + TextBox1.Text + "'"
    command.ExecuteScalar()

我正确地打开了close connection没有错误,有一点我无法理解:

如果您在Visual Studio中将SQLCE数据库添加到项目中,请查看其属性在解决方案资源管理器中选择该文件并查看属性面板。通常,数据库文件的“生成操作”设置为“内容”,而“复制到输出”选项设置为“始终复制”。这意味着,每次从Visual Studio项目生成解决方案时,很可能会将空数据库重新复制到生成文件夹$projectname$\bin\Debug或\Release中,并使用运行时添加的数据覆盖现有数据库


要解决此问题,只需将“复制到输出”设置为“如果更新”,只要设计数据库文件发生更改,它就会覆盖您的数据。

一些不相关的东西”-为什么您要将CE数据库用于桌面应用程序,而您好奇地想知道,您可以说必须将其提供给某人,这样其他人只知道如何运行这些东西,如果我使用其他方法,他就必须更改连接字符串等等。我只是想弄清楚问题所在,每当我构建解决方案时,新数据都会被删除,否则无论我运行多少次,它都会保持不变。。但为什么会这样呢?谢谢您您的sql代码容易受到注入攻击。不要使用字符串连接来替换这样的参数值。谢谢。我有点明白,但不知道原因:,请记住。