2013-08-24 69 views
0

我在C#項目中,我有類(名稱:sql_conClass.cs),其中包含連接字符串生成器:app.config - 引用類?

public class myConnection 
{ 

    internal static class DataSource 
    { 
     private static string _ConnectionString; 
     public static string ConnectionString 
     { 
      get 
      { 
       if (_ConnectionString == null) 
        _ConnectionString = FunctionToDynamicallyCreateConnectionstring(); 
       return _ConnectionString; 
      } 
     } 
     private static string FunctionToDynamicallyCreateConnectionstring() 
     { 

        SqlConnectionStringBuilder cb = new SqlConnectionStringBuilder(); 

        cb.DataSource = Properties.Settings.Default.sql; 
        cb.InitialCatalog = Properties.Settings.Default.database; 
        cb.UserID = Properties.Settings.Default.login; 
        cb.Password = Properties.Settings.Default.pass; 
        cb.ConnectTimeout = 120; 

        return cb.ToString(); 

     } 
} 

現在,當我創建dinamically爲數據源的ReportViewer(我從服務器資源管理器從移動精確服務器我用於ReportViewer的表格)。該項目創建它自己的連接到此服務器。因此,當我創建項目的.exe文件時,每個人都會將此SqlConnection包含到此服務器,而無需更改它。

我的ConnectionBuilder存儲在app.config中。我想問是否有辦法將引用插入此Connectionbuilder到app.config中?

回答

0

每一個被動態地轉移到DataSet中的表都會創建它自己的SqlConnection,這個SqlConnection設置Integrated Security = True例如Data Source=SERVER\SQL;Initial Catalog=database;Integrated Security=True。我發現,在DataSet.Designer.cs它創建這行代碼:

private void InitConnection() { 
     this._connection = new global::System.Data.SqlClient.SqlConnection(); 
     this._connection.ConnectionString = global::tours.Properties.Settings.Default.toursConnectionString1; 
    } 

我只需要上課提供正確的參考,並將其改成這樣:

private void InitConnection() { 
     this._connection = new global::System.Data.SqlClient.SqlConnection(); 
     this._connection.ConnectionString = myConnection.DataSource.ConnectionString; 
    } 
+1

變化設計文件一個不行,這些文件通常會重新生成。事實上,app.config有自己的部分來存儲連接。爲什麼不使用它? – Gonzix