我在这里看了很多文章,但还没有完全找到了解决办法。 我有一个使用我的VB.NET应用程序中的SQL Server Express数据库。 我已经打包和部署通过MSI文件的应用程序和除了我无法弄清楚如何将与包我的数据库文件,一切都很正常。 我理解一般有三种方法可以做到这一点(复制文件手动过,自定义操作,和SQL脚本)。 我并不需要什么看中这里,只是一个快速的方法来把DB客户端机器上,所以我的应用程序可以访问它。
我决定复制在DB手动是最快的选择。 我试图把它的工作目录,并在\DATA
的客户端的SQL Server Express的安装目录,但我的应用程序将无法连接。 我也试图改变我的项目连接.\SQLEXPRESS
而非[my_computer_name]\SQLEXPRESS
,然后重新生成部署项目,并重新安装客户端机器上,但没有汤给我。 同样的问题。 我试图改变“UserInstance”属性的项目为“True”,但我的项目不会让我保存的动作。
我是正确的是手动拷贝完成这件事的最快捷和最简单的方法是什么?
你应该对attach
的文件到SQL Server实例。
CREATE DATABASE YourDatabaseName
ON (FILENAME = 'C:\your\data\directory\your_file.mdf'),
(FILENAME = 'C:\your\data\directory\your_file_Log.ldf')
FOR ATTACH;
您需要将数据库文件附加到运行SQL Server的客户机上。 这可以通过使用存储在您的配置文件中的连接字符串,这种变化(或的app.config web.config文件)可以轻松完成
Server=.\SQLExpress;AttachDbFilename=where_you_have_stored_the_mdf_file;
Database=dbname; Trusted_Connection=Yes;
在选择,你可以使用|DataDirectory|
替换字符串。
此快捷方式不再需要硬编码的完整路径。
使用DataDirectory目录,你可以有下面的连接字符串:
Server=.\SQLExpress;AttachDbFilename=|DataDirectory|\yourfile.mdf”
Database=dbname; Trusted_Connection=Yes;