发布带有本地数据库的WPF应用程序

本文关键字:WPF 应用程序 数据库 布带 | 更新日期: 2023-09-27 18:08:03

好的,所以我很迷路。这是我第一个使用本地数据库为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文件被复制到安装目录/database。但是在安装之后,这两个文件都是只读的(即使这些文件在我开发时具有读/写权限)。当应用程序第一次启动时,我试图更改文件权限(两个文件):

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);

但是这两种方法都不起作用。

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

发布带有本地数据库的WPF应用程序

  • 您的数据库应该位于windows用户目录

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