【问题标题】:Database file .sdf does not update after closing application关闭应用程序后数据库文件 .sdf 不更新
【发布时间】:2011-07-03 21:12:39
【问题描述】:

我正在使用 Microsoft Visual Studio .NET 2008 创建一个桌面应用程序。我使用 .sdf 文件作为我的数据库。我的问题是,当我对我的记录进行更改(添加新的、删除的、更新的)时,这些更改仅在我的应用程序运行时反映。当我重新启动应用程序时,我没有得到我的更改。

我使用的是默认连接字符串

string conString = Properties.Settings.Default.DataConnectionString;
SqlCeConnection con = new SqlCeConnection(conString);
con.Open();

Visual Studio 给这个数据库的值是

数据源=|DataDirectory|\Data.sdf

我不知道我在做什么错误,但所有查询都在执行。

【问题讨论】:

    标签: c# sdf


    【解决方案1】:

    每次从 VS.NET 运行时,它都会将 sdf 文件从解决方案复制到 bin 文件夹中,并覆盖上次运行时存在的 bin/sdf 文件。将 sdf 文件的属性更改为“如果较新则复制”而不是“始终复制”。

    【讨论】:

    • 尝试将其设置为“不复制”选项(不确定这是否正是它的名称),看看是否能解决问题。如果可行,那么您需要记住在更新数据库架构时更改它。
    • 我认为这暂时解决了问题..我必须再做一些工作,让你知道这是否是正确的答案......它也给出了一些错误..所以我必须复制数据库从调试文件夹到 bin/debug 文件夹,否则它不会自行复制...我会尽快通知您最终结果..感谢您的帮助
    【解决方案2】:

    检查您的应用程序文件夹并确保您从您所在的 bin 文件中调用您的数据库文件。

    类似:

    string startPath = Application.StartupPath;
    
    
    var filepath = startPath + "\\" + "Database.sdf";
    
    private SqlCeConnection conn = new SqlCeConnection("Data Source={0};Persist Security Info=False;",filepath);   
    

    问候

    【讨论】:

      【解决方案3】:

      如果您没有将 database.sdf 的“复制到输出目录”设置为“始终复制”,则会出现探索解决方案

      当前连接字符串和字段应用,不可更改,每次连接数据库都会调用

      再见

      【讨论】:

      • “复制到输出目录”默认设置为“如果较新则复制”.. 正确吗..
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      相关资源
      最近更新 更多