Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用基于服务的数据库时数据丢失?_C#_Database - Fatal编程技术网

C# 使用基于服务的数据库时数据丢失?

C# 使用基于服务的数据库时数据丢失?,c#,database,C#,Database,我使用insert into命令将记录添加到数据库中,但当我运行应用程序时,我添加的数据不存在,即数据库为空 我已关闭连接,但没有存储数据,我该怎么办 代码: Ofer Zelig认为您不应该忽略异常是正确的,因此要做的第一件事是确认没有抛出异常。如果是,请具体说明 假设没有例外,Alejandro是正确的,您很可能每次都覆盖数据库。这是默认行为 然而,他认为在你的应用程序中使用MDF数据文件是错误的。只要它不是一个多客户端应用程序,这样做没有什么错。数据库在运行时仍连接到SQL Server实

我使用insert into命令将记录添加到数据库中,但当我运行应用程序时,我添加的数据不存在,即数据库为空

我已关闭连接,但没有存储数据,我该怎么办

代码:


Ofer Zelig认为您不应该忽略异常是正确的,因此要做的第一件事是确认没有抛出异常。如果是,请具体说明

假设没有例外,Alejandro是正确的,您很可能每次都覆盖数据库。这是默认行为

然而,他认为在你的应用程序中使用MDF数据文件是错误的。只要它不是一个多客户端应用程序,这样做没有什么错。数据库在运行时仍连接到SQL Server实例

将基于服务的数据库添加到项目中时,MDF文件将成为源文件。就像所有源文件一样,正在运行的应用程序对此一无所知。生成时,该MDF文件将与EXE一起复制到输出文件夹中。它是您在运行时连接到的副本,也是您对其进行更改的副本。默认情况下,每次生成新副本时都会创建新副本,从而覆盖对旧副本所做的任何更改


在解决方案资源管理器中选择数据文件,然后打开“属性”窗口。将“复制到输出目录”属性更改为“如果较新,则始终从默认副本复制”。现在,仅当您实际更改了源文件(例如更改了架构)时,才会创建新副本。这意味着您在一次运行期间所做的任何更改都将在下次运行时保留在数据库中,即使项目是在两次运行之间构建的。如果要查找数据库中的数据,只需确保查找的是输出文件夹中的副本,而不是项目文件夹中的源。

放置断点,调试断点,检查日志,确保指向正确,是的,显示代码!SqlConnection cn=new SqlConnectionglobal::app.Properties.Settings.Default.DatabaseConnectionString;尝试{string sql=INSERT-INTO-tbl字段值'+lblText.Text+';;SqlCommand sqlc=new-SqlCommandsql,cn;cn.Open;sqlc.ExecuteNonQuery;}捕获异常ex{}{cn.Close;}每次运行时都要覆盖.mdf吗?通常情况下,一个单独的.mdf文件是个坏主意。无论如何,你应该依赖一个连接到引擎并在那里创建DB的严肃数据库。你用try..catch包装了你的代码,这样它会默默地吞没所有错误。删除try..catch或在代码到达捕获行时调试代码,以查看错误罗是的。我意识到了我的问题,非常感谢你们感谢泽利格和亚历杭德罗
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(); }