2013-07-09 51 views
1

Studio 2010訪問LUW DB的C#應用​​程序。我在代碼後面的代碼中創建我的數據庫連接設置時收到錯誤,而不是使用web.config。我們有第三方產品,其中存儲和檢索密碼。如何在代碼後面設置DB ConnectionStringSettings

舊web.config文件方法目前立DB連接,如下所示:

在web.config文件中:

<add name="myDBConnect" connectionString="Database=mydbname;User  
ID=myuserid;Password=abcxyz" providerName="IBM.Data.DB2"/> 

在以下被執行以打開DB連接代碼隱藏文件:

ConnectionStringSettings settings = WebConfigurationManager.ConnectionStrings["myDBConnect"]; 
ConnectionString = settings.ConnectionString; 
ConnectionStringSettingsCollection settings = ConfigurationManager.ConnectionStrings; 
     if ((settings != null)) 
     { 
      foreach (ConnectionStringSettings cs in settings) 
      { 
       returnValue = cs.ProviderName; 
      } 
     } 

上述邏輯工作正常 - 但現在我想動態地構建我們的第三獲取正確的密碼後,將連接字符串第三方產品如下:

(注:connPW是THRID第三方產品獲取的密碼)

ConnectionStringSettings settings = "Database=" + mydbname + ";User ID=" + myuserid + ";Password=" + connPW + " providerName=IBM.Data.DB2"; 

這行代碼會收到以下錯誤: 「無法隱式轉換類型‘字符串’到「系統.Configuration.ConnctionStringSettings'

有人可以請建議如何在定義設置時可以通過此錯誤。謝謝

+0

您可以手動確認 – Jonesopolis

+0

爲什麼使用'ConnectionStringSettings'?連接字符串本身不夠嗎? – Corak

回答

1

它給你的錯誤,因爲你設置一個String對象等於一個ConnectionStringSettings對象,當然。如果您想使用ConnectionStringSettings,則只需使用ConnectionStringSettings(string name, string connectionString, string providerName)構造函數。

ConnectionStringSettings settings = new ConnectionStringSettings("name", "Database=" + mydbname + ";User ID=" + myuserid + ";Password=" + connPW, "IBM.Data.DB2"); 
+0

感謝您提出這些建議。我會研究並向前邁進。 – dev

3

你不需要ConnectionStringSettings;你應該直接連接到字符串。您還應該使用DbConnectionStringBuilder修復修復代碼中的注入漏洞。

0

嘗試......

ConfigurationManager.ConnectionStrings["ConnectionStringName"].ConnectionString = "your connection string"; 

如果您在上面的代碼,系統將拋出一個錯誤「配置是隻讀的」,因爲配置僅
閱讀,我們可以通過這個做方法

var settings = ConfigurationManager.ConnectionStrings["ConnectionStringName"]; 
    var Reset = typeof(ConfigurationElement).GetField(
        "_bReadOnly", 
        BindingFlags.Instance | BindingFlags.NonPublic); 
    Reset .SetValue(settings, false); 
    settings.ConnectionString = "Data Source=Something"; 
相關問題