2013-05-19 41 views
0

我想將連接字符串應用於整個winform。如果我這樣做,在這種情況下 - 這將適用於整個雙贏的形式,但後來我不能使用文本框輸入詳細信息:將相同的sql連接字符串應用於整個winform?

public partial class Form1 : Form 
{ 
    SqlConnection myConnection = new SqlConnection("user id=userName;" + 
    "password=userPass;" + 
    "server=.;" + 
    "Trusted_Connection=yes;" + 
    "database=dbName; " + 
    "MultipleActiveResultSets=True;" + 
    "connection timeout=30"); 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

如果我將文本框使用我將需要輸入連接字符串每種方法。

無論如何解決它嗎?

回答

1

您可以採取的另一種方法是在需要時創建SqlConnection,如果要保存引用,則存儲在私有變量中。

所以,當你需要連接有:

if(myConnection == null) 
{ 
    string connectionString = string.Format("user id={0}, password={1}", userIdTextBox.Text, passwordTextBox.Text); 
    myConnection = new SqlConnection(connectionString); 
} 

您將擴展「的String.format」以包括其他連接屬性。

如果在多個位置需要「myConnection」,則將上述代碼放入名爲「GetConnection」的方法中,讓它使用文本框的內容返回SqlConnection實例,並在每次需要連接時調用此方法。

編輯:

我個人有建立連接字符串,象上面描述的方法,並且每當需要它創建一個新的SqlConnection實例。這將嘗試每次都打開一個新連接,但會利用內置於ADO.NET庫中的連接池。

using(SqlConnection connection = new SqlConnection(this.GetConnectionString())) 
{ 
    // Open Connection 
    // Access the database 
    // Close the connection <- Manual closing MAY not be needed as it might be done in Dispose ...check MSDN for clarification. 
} 
+0

將立即嘗試 – Dan272

0

您可以創建一個靜態類來存儲連接字符串。始終創建連接字符串並不是一個好習慣。

+0

不能使用將讀取文本框的靜態方法/類。 – Dan272