2013-09-16 227 views
0

我正在使用數據集,ConnectionString存儲在項目屬性中。 我試着編輯ConnectionString的值,但是我得到只讀的消息!更改屬性值

我需要修改ConnectionString,因爲當我的應用程序部署到客戶端(需要更改用戶和密碼)時,我必須對其進行更改。

那麼我該如何修改ConnectionString?

+0

把它放在你的app.config – makim

+0

不使用性能。使用Web.config/App.Config –

+0

它存儲在項目屬性中的哪個位置? – VahidNaderi

回答

2

把它放在你的app.config(當然這可以改善或者你可以把整個的ConnectionString到的app.config像卡爾·安德森提到的)和不要忘了參考System.Configuration

<appSettings> 
    <add key="dbServer" value="server"/> 
    <add key="dbName" value="mydb"/> 
    <add key="integratedSecurity" value="true"/> 
    <add key="user" value=""/> 
    <add key="pwd" value=""/> 
</appSettings> 

,並在C#

public string GetConnectionString() 
{ 
    var builder = new SqlConnectionStringBuilder(); 
    builder.DataSource = ConfigurationManager.AppSettings["dbServer"]; 
    builder.InitialCatalog = ConfigurationManager.AppSettings["dbName"]; 
    builder.IntegratedSecurtiy = Convert.ToBoolean(ConfigurationManager.AppSettings["integratedSecurity"]); 

    string user = ConfigurationManager.AppSettings["user"]; 
    string pwd = ConfigurationManager.AppSettings["pwd"] 
    if(!string.IsNullOrEmpty(user)) 
    { 
     builder.UserId = user; 
     builder.Password = YourCryptoProvider.Decrypt(pwd); 
    } 
    return builder.ToString() 
} 
+0

很好,謝謝你的幫助,但是在這裏我有一個問題,那就是mydataset(由VS生成)正在使用這些屬性! – Rad

+1

可以請你用你的代碼更新這個問題,所以我可以看看它 – makim

+0

Here'sa [link](http://msdn.microsoft.com/de-de/library/system.data.dataset.aspx ),它演示瞭如何使用GetConnectionString創建數據集 - 方法 – makim

0

使用web.config中的connectionStrings部分,像這樣:

<connectionStrings> 
    <add name="MyConnectionString" 
     connectionString="Data Source=YourComputer\sqlexpress;Initial 
     Catalog=YourDatabase;User ID=YourUserName;Password=YourPassword" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

然後你就可以在你的代碼讀出的值,就像這樣:

Configuration rootWebConfig = Configuration.WebConfigurationManager.OpenWebConfiguration("/MyWebSiteRoot"); 
ConnectionStringSettings connString; 

// Are there any connection string values in web.config? 
if (rootWebConfig.ConnectionStrings.ConnectionStrings.Count > 0) 
{ 
    // Find the particular connection string we want by name 
    connString = rootWebConfig.ConnectionStrings.ConnectionStrings["MyConnectionString"]; 

// Does the connection string exist in web.config? 
if (connString != null) 
{ 
    // Yes, so use it here 
else 
{ 
    // No, so generate error or alert user or whatever here 
}