VB.NET应用程序的SQL数据库部署

时间:2012-09-03 21:02:22

标签: sql vb.net deployment

我在这里阅读了很多文章,但还没有找到解决方案。我有一个我的VB.NET应用程序使用的SQL Server Express数据库。我已经通过MSI文件打包和部署了应用程序,一切都很好,除了我无法弄清楚如何在包中包含我的数据库文件。我知道有三种通用的方法(手动复制文件,自定义操作和SQL脚本)。我不需要任何花哨的东西,只是一种快速的方法将数据库放在客户端机器上,以便我的应用程序可以访问它。

我决定手动复制数据库是最快的选择。我尝试将它放在工作目录和客户端SQL Server Express安装的\DATA目录中,但我的应用程序无法连接。我还尝试将项目中的连接更改为.\SQLEXPRESS而不是[my_computer_name]\SQLEXPRESS,然后重建部署项目并重新安装在客户端计算机上,但对我来说没有汤。同样的问题。我尝试将项目中的“UserInstance”属性更改为“True”,但我的项目不允许我保存该操作。

我是否认为手动复制是最快捷,最简单的方法?

2 个答案:

答案 0 :(得分:2)

您应该将文件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; 

答案 1 :(得分:0)

您需要将数据库文件附加到客户端计算机上正在运行的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;