【问题标题】:Release a WPF app with local database使用本地数据库发布 WPF 应用程序
【发布时间】:2015-08-16 06:29:53
【问题描述】:

好的,所以我很迷茫。这是我为具有本地数据库的 Windows 编写的第一个真正的应用程序。 我在 VS2012 中使用本地数据库编写了一个 WPF 应用程序,该数据库将所有 CRUD 编写为存储过程。 该应用程序正在运行,因为我在 VS 中运行它。但是当我构建应用程序并安装它(在任何机器上)时,数据库是不可访问的。我感觉是连接字符串导致了这个问题。

首先我使用了这个连接字符串:

SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename='D:\LH\Personalitytest win\DB.mdf';Integrated Security=True;Database=DB")

但是当我得到“错误:26 - 错误定位服务器/指定实例”时,我猜想连接的数据源不正确(尽管 AttachDbFilename 肯定不正确)。因此,我将连接字符串更改为:

SqlConnection conn = new SqlConnection(@"Server=(localdb)\v11.0;AttachDbFilename=" + AppDomain.CurrentDomain.BaseDirectory + "DB.mdf;Database=DB;Trusted_Connection=Yes;");

我得到一个错误,基本上说文件 DB.mdf 没有找到。

所以,我确保将 .mdf 和 .ldf 文件复制到安装目录/数据库。 但是在安装后,这两个文件都是只读的(即使这些文件在我开发时具有读/写权限)。我尝试在应用程序首次启动时更改文件权限(对于两个文件):

string path = AppDomain.CurrentDomain.BaseDirectory + @"Database\DB.mdf";
FileInfo file = new FileInfo(path);
file.IsReadOnly = false;

File.SetAttributes(path, FileAttributes.Normal);

FileAttributes attributes = File.GetAttributes(path);
attributes = attributes & ~FileAttributes.ReadOnly;
File.SetAttributes(path, attributes);

但是这些方法都不起作用。

我的问题基本上是,最终版本应该如何实现数据库?

【问题讨论】:

    标签: c# wpf database


    【解决方案1】:
    • 您的数据库应该位于您的 windows 用户目录中

    • 另一种方法是在您的计算机上安装 SqlServer Express。并相应地配置您的连接字符串。

    【讨论】:

      猜你喜欢
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多