【问题标题】:make permanent changes for database对数据库进行永久性更改
【发布时间】:2017-03-25 14:11:55
【问题描述】:

我正在使用 C# 和 MS SQL 2012 开发 Windows 桌面应用程序。我正在使用 Visual Studio 2013 Ultimate。我正在使用配置管理器中的连接字符串。

我的连接字符串: 数据源=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\ABC_database.mdf;初始目录=ABCDProject;Integrated Security=True

我现在已经将一些数据存储到数据库并创建了设置文件。在调试期间,我对数据所做的更改不会反映到数据库中,因为我从服务器资源管理器中查看。

当我搜索时,许多建议表明这可能是由于复制到输出目录属性。因此我将其更改为:“如果较新则复制”

另外,如果我想将数据永久存储到数据库中。如果我想重新安装我的应用程序,所有数据将永久保存到数据库中,当我重新安装应用程序时,它仍将包含所有数据。

请给我建议适当的、可行的解决方案。

我正在使用以下代码:

private void saveUser() 
{ 
     using (SqlConnection con = new SqlConnection(conn))
     using (SqlCommand cmd = new SqlCommand("INSERT INTO USERS (id, password, date, status) VALUES (@id, @password, @date,'NEW USER')", con))  
      {
           cmd.Parameters.AddWithValue("id", id);
           cmd.Parameters.AddWithValue("password", password);
           cmd.Parameters.AddWithValue("date", date);
           con.Open();
           cmd.ExecuteNonQuery();
           con.Close(); 
      }
 } 

【问题讨论】:

  • 你是如何从你的 c# 代码中改变数据的?你是如何连接到数据库的? ADO.net?实体框架?
  • @mariocatch 我不确定你的意思,因为我不太了解这些概念。我附上了我正在使用的代码。请参考。
  • 对我来说看起来是正确的。您是否看到任何错误?在该块中放置一个断点并单步执行它 - 确保它到达它。
  • 不,没有错误。问题是,调试后保存的数据丢失了。我想丢失数据。如果我卸载应用程序并重新安装,我需要从我停止的地方继续。我不想再次提供数据
  • 您是否在每次运行应用程序时都创建一个新的 .mdf?尝试将 .mdf 放在 bin 目录之外的某个位置,并将连接字符串更改为 .mdf 绝对路径

标签: c# sql-server windows


【解决方案1】:

尝试SqlDataAdapter() 更新记录。将SqlCommand 附加到SqlAdapter.InsertCommand 属性,然后执行它,然后在SqlAdapter 对象上调用更新作为参数。那应该会变魔术。问候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2018-11-21
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多