2013-07-25 50 views
10

我有這個代碼下來,我試圖使它測試SQL字符串連接,但我不知道如何處理與connection.Open = true部分你會幫我解決這個問題嗎?非常感謝您的參與。最有效的方法來測試SQL連接字符串可用性

private void button1_Click(object sender, EventArgs e) 
    { 
     try 
     { 
      using (SqlConnection connection = new SqlConnection("Data Source='" + textBox1.Text + "';Initial Catalog='" + textBox2.Text + "';User ID='" + textBox3.Text + "';Password='" + textBox4.Text + "'")) 
      { 
       try 
       { 
        connection.Open(); 
        if (connection.Open == true) // if connection.Open was successful 
        { 
         MessageBox.Show("You have been successfully connected to the database!"); 
        } 
        else 
        { 
         MessageBox.Show("Connection failed."); 
        } 
       } 
       catch (SqlException) { } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show("Chyba v přihlášení: " + ex); 
     } 
     finally 
     { 

     } 
    } 

它說:「不能ASIGN‘開放’的,因爲它是一個‘methoud組’」我知道,這個代碼可能是完全以壞,但我需要以某種方式處理這個,而且不知道什麼是正確的辦法。謝謝。

這是不實際工作未打開的連接:

using (SqlConnection connection = new SqlConnection("Data Source='" + textBox1.Text + "';Initial Catalog='" + textBox2.Text + "';User ID='" + textBox3.Text + "';Password='" + textBox4.Text + "'")) 
     { 

      connection.Open(); 

      if (connection.State == ConnectionState.Open) 
      { 

       MessageBox.Show("Spojení s databázi problěhlo úspěšně."); 
      } 
      connection.Close(); 
      if (connection.State == ConnectionState.Closed) 
      { 
       MessageBox.Show("Spojení selhalo"); 
      } 
     } 
+0

'.Open()'是一個**方法**,它返回void它不是一個屬性。您無法爲其分配值。看到我的答案。 – DGibbs

回答

16

您使用connection.Open = true就好像它是一個屬性。

這是一個方法:connection.Open()

使用ConnectionState枚舉,以確定連接是否開放與否,如:

connection.State == ConnectionState.Open 
+0

你好,謝謝你的時間,請問如何看(如果沒有連接成功?)我試過connection.State == ConnectionState.Closed或Broken,但它沒有彈出msg框。 – Marek

+0

你在哪裏調用'connection.State == ConnectionState.Closed'?你能更新你的問題嗎? – DGibbs

+0

我更新了問題,以便您更好地理解 – Marek

3

您需要檢查,如果它是開放的這段代碼:

if(connection.State == ConnectionState.Open) 
{ 
    ... 
} 
+0

你好,謝謝你的時間,請問如何看(如果沒有連接成功?)我試過connection.State == ConnectionState.Closed或Broken,但它沒有彈出信息框。 – Marek

+2

我想'connect.State!= ConnetionState.Open' – wudzik

+1

我也試過,但是沒有彈出消息框。我更新了問題,以便更好地理解我的問題。 – Marek

相關問題