我使用命令"插入"向数据库添加记录,但是当我运行应用程序时,我添加的数据不存在,即数据库为空。
我关闭了连接,但没有存储数据,我该怎么办?
代码:
SqlConnection cn = new SqlConnection(global::app.Properties.Settings.Default.DatabaseConnectionString);
try
{
string sql = "INSERT INTO tbl (field) VALUES ('"+ lblText.Text + "');";
SqlCommand sqlc = new SqlCommand(sql, cn);
cn.Open();
sqlc.ExecuteNonQuery();
} catch (Exception ex) { } finally { cn.Close(); }
答案 0 :(得分:0)
Ofer Zelig是正确的,你不应该忽略异常,所以要做的第一件事是确认没有抛出异常。如果是那么专门解决。
假设没有例外,Alejandro是正确的,你很可能每次都覆盖数据库。这是默认行为。
但是,他在您的应用中使用MDF数据文件是错误的。这样做没有错,只要它不是多客户端应用程序。数据库在运行时仍附加到SQL Server实例。将基于服务的数据库添加到项目时,MDF文件将成为源文件。就像所有源文件一样,正在运行的应用程序对此一无所知。构建时,该MDF文件与EXE一起复制到输出文件夹中。它是您在运行时连接到的副本以及您更改的副本。默认情况下,每次创建新副本时都会创建,从而覆盖您对旧副本所做的任何更改。
在解决方案资源管理器中选择您的数据文件,然后打开“属性”窗口。更改'复制到输出目录'财产到"复制如果更新"来自默认"始终复制"。现在,只有在您实际更改了源文件时才会创建新副本,例如,改变了架构。这意味着您在一次运行期间所做的任何更改都将在您下次运行时保留在数据库中,即使项目介于两者之间也是如此。如果要查找数据库中的数据,只需确保查看输出文件夹中的副本而不是项目文件夹中的源。