发布带有本地数据库的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);
但是这两种方法都不起作用。
我的问题基本上是,数据库应该如何在最终版本中实现?
-
您的数据库应该位于windows用户目录
-
另一种方法是在您的机器上安装SqlServer Express。并相应地配置您的连接字符串