使用数据库打包C#应用程序

时间:2012-05-25 09:56:28

标签: c# database mdf

我打包了一个使用数据库的WPF C#应用程序。

但是,当我安装打包的应用程序时,它使用我在开始时通过visual studio(.mdf)创建的数据库,而不是创建另一个。

打包应用程序的整个目的是让我可以在其他计算机上共享它,所以我安装它我需要它为该应用程序实例创建一个新的数据库。

有没有办法实现这个目标? 是否有一个属性我需要设置为说数据库是本地实例?或者强制包在安装时创建一个新包?

非常感谢任何帮助。

感谢。

2 个答案:

答案 0 :(得分:2)

我自己一直在做这件事,我建议使用SQL Compact Edition的一件事让这个过程变得容易多了,但如果现在这个过程太晚了,那么坚持使用当前的数据库,不过我不知道以下方法是否适用于MDF文件。

您如何在客户端计算机上部署应用程序?用户机器是否安装了SQL?

您需要做的第一件事是转到MDF的属性,并确保将更新和构建操作设置为内容时,将复制到输出目录设置为复制。

如果您正在使用安装项目来安装应用程序,那么您需要在项目,应用程序属性,发布,应用程序文件中确保您是mdf在列表中并且设置为数据文件自动,必需和包括

并右键单击安装程序文件系统中的“应用程序文件夹”,然后添加, 项目输出,文件内容

最后更改代码中的连接字符串,使其显示为

using ( SqlCeConnection sqlCon = new SqlCeConnection( @"Data Source=|DataDirectory|\App.sdf;Persist Security Info=False;" )

或者如果你没有使用精简版

using ( SqlConnection sqlCon = new SqlConnection( @"Data Source=|DataDirectory|\App.mdf;Persist Security Info=False;" )

^使用“DataDirectory”意味着您不关心用户放置应用程序的位置,您将始终获得正确的文件

在运行并将数据库更改为压缩之前,它并不支持正确的sql数据库。

在这之后,你可能仍然会遇到权限错误,而且因为它很长,我可能错过了一步,所以只要你需要更多的评论?

修改的 如果用户没有sql server或sql Compact,那么最简单的解决方案就是要求他们安装SQL CE,或者有一种方法可以使用DLL做同样的事情,但我无法让它工作

此处的链接在http://msdn.microsoft.com/en-us/library/aa983326.aspx

答案 1 :(得分:1)

确保您的数据库已部署在客户端,并更改应用程序中的连接字符串以指向它。