我开发了一个与sqlserver数据库交互的ASP.net Web应用程序。 对于像ADO.net这样的数据库相关任务。连接字符串从web.config文件加载。 连接字符串加载代码写在下面
public DataBaseCache()
{
CS = ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString;
//etc
}
我的web.config文件位于
之下<connectionStrings>
<add name="DBCS"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=F:\ProjectApplication6-3\ProjectApplication\App_Data\ProjectDatabases.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
现在的问题是,如果我将我的Visual Studio项目文件保存到其他驱动器,我需要在web.config文件中更改我的连接字符串,在此示例中它位于Drive F. 请指导我每次将应用程序保存到各种驱动器并且代码自动执行时如何避免此复制粘贴。 问候
答案 0 :(得分:2)
将数据库放入项目的App_Data目录中,然后使用:
<connectionStrings>
<add name="DBCS"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|ProjectDatabases.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
当您将项目移动到其他驱动器/计算机并安装SQL Express时,您的项目应该能够附加到您的数据库。
此other question与您的相似,可能会提供额外的见解。
注意强> 我添加了“| DataDirectory |”到连接字符串
答案 1 :(得分:0)
更改您的web.config
<connectionStrings>
<add name="DBCS"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename={0}ProjectApplication6-3\ProjectApplication\App_Data\ProjectDatabases.mdf;Integrated Security=True;User Instance=True"
providerName="System.Data.SqlClient" />
然后在你的代码中
public DataBaseCache()
{
string rootPath="F:\";
CS = String.Format(ConfigurationManager.ConnectionStrings["DBCS"].ConnectionString, rootPath);
//etc
}