一尘不染

如何在Visual Studio 2010中使用数据目录创建安装文件期间附加SQL Server数据库文件(.mdf)

sql

我开发了一个简单的图书录入系统应用程序,其中所有数据都将保存到数据库文件中bookdb.mdf。当我尝试创建安装文件时,我不知道将数据库文件放在何处。此外,我需要更改我的连接字符串。

这是我当前的连接字符串

{"Data Source=.\\SQLEXPRESS;AttachDbFilename=E:\\Software\\Projects\\Visual Studio project\\Seminar Library CSE KU\\bookdb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"}

我试图通过将应用程序配置文件添加到解决方案来更改我的连接字符串,然后在其中编写

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <connectionStrings>
    <add name="bookdb.mdf" providerName="System.Data.SqlClient" connectionString="Source=.\SQLEXPRESS;AttachDbFilename=E:\Software\Projects\Visual Studio project\Seminar Library CSE KU\bookdb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" />
   </connectionStrings>
</configuration>

但是,当我将应用程序安装到另一台计算机上时,它显示数据库文件丢失。所以请帮我解决这个问题


阅读 139

收藏
2021-03-17

共1个答案

一尘不染

将数据库文件放入用户ApplicationData目录的子文件夹中。安装程序项目将知道如何在其中放置mdf文件,您可以在代码中设置连接字符串,如下所示:

string connectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename={0}\\Seminar Library CSE KU\\bookdb.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";

#if DEBUG
    connectionString = string.Format(connectionString, "E:\\Software\\Projects\\Visual Studio project\\");
#else
    connectionString = string.Format(connectionString, Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
#endif

// Use your connection string here.
2021-03-17