2014-02-05 93 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

相關問題