2010-12-10 51 views
0

在一類我已經定義的連接字符串這樣以從文本框中的連接字符串值

SqlConnectionStringBuilder objConnectionString = new SqlConnectionStringBuilder(); 
      objConnectionString.DataSource = localServer; ; 
      objConnectionString.UserID = userName; 
      objConnectionString.Password = password; 
      objConnectionString.InitialCatalog = selectedDatabase; 

其中本地服務器= txtHost; - 數據源 的userName = txtUsername; password = txtPassword;

但在我的另一個項目,我想訪問該項目

目前我有這樣的

using(var sConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"])) 

數據庫連接的控制,但我想讓它這樣,它將採取的直接從另一個項目

等待您的建議.....這是可以做到使用文本框的值..

回答

0

你不會BNE abble做這個,除非你將實際的控制權交給另一個項目中的方法。

爲什麼不寧願將您設置的SqlConnectionStringBuilder對象先前設置爲要調用的方法?

0

在帶有文本框的表單中,您需要創建屬性以訪問表單中的值,例如,

public string Server 
{ 
    get 
    { 
     return this.txtHost.Text; 
    } 
} 

你還需要,無論是通過引用項目,或者使用兩者之間的共享接口到表單的引用傳遞到其他項目。

在你的項目,你想建立連接字符串,則需要接受參照表的一些方法,如

public void RunMyQuery(MyForm form) 
{ 
    var objConnectionString = new SqlConnectionStringBuilder(); 
    objConnectionString.DataSource = form.Server; 
} 

如果你有時間,可以考慮創建包含一個新項目共享接口,所以你可以創建這樣一個接口

public interface IConnectionStringPartProvider 
{ 
    string Server { get; } 
    ... other parts 
} 

和實現形式,在此接口

public partial class Form1 : Form, IConnectionStringPartProvider 

然後,您不需要在邏輯類中引用表單項目,只需讓兩個項目引用共享項目即可。

這樣,你的查詢方法可以與

public void RunMyQuery(IConnectionStringPartProvider provider) 
{ 
    var objConnectionString = new SqlConnectionStringBuilder(); 
    objConnectionString.DataSource = provider.Server; 
} 
被替換