2014-02-05 74 views
0

我开发了一个与sqlserver数据库交互的ASP.net web应用程序。 适用于数据库相关任务,如ADO.net。连接字符串从web.config文件中加载。 连接字符串装载代码写入下面连接字符串从ASP.net中的web.config文件加载C#

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项目文件到其他驱动器,我需要改变我的连接在这个例子中它是在驱动器F中的web.config文件中的字符串。 请指导我如何避免此复制粘贴每次我将应用程序保存到各种驱动器和代码自动执行。 问候

+0

只是使其成为数据库文件的相对路径,而不是绝对路径。 – mason

+0

先生有点详细说明吗? – user3266922

+0

您正在使用整个路径来说明数据库文件的位置。相反,你只需要包括如何从你的项目中获得它的指导。请参阅维基百科上的路径文章。 http://en.wikipedia.org/wiki/Path_(computing) – mason

回答

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 |”连接字符串

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 
    } 
+0

同样的问题,如果我改变它为D:驱动器,然后我必须改变rootPath =“D:\”; – user3266922

+0

您可以从global.asax.cs文件进行设置。从Application_Start事件调用Context.Request.PhysicalApplicationPath 或其他地方,您可以从HttpContext.Current.Request.PhysicalApplicationPath中获取它。显然你需要从完整路径中恢复驱动器号。 – rob

+1

我发现解决方案我自己它只是使用| DataDirecory |自从| DataDirectory |之后,而不是完整路径指向Appdata文件夹,然后你只需要在它后面使用/databaseName.mdf。希望它对你也有好处 – user3266922

相关问题