最有效的方法来测试SQL连接字符串可用性

问题描述:

我有这个代码下来,我试图使它测试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

您使用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

您需要检查,如果它是开放的这段代码:

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

你好,谢谢你的时间,请问如何看(如果没有连接成功?)我试过connection.State == ConnectionState.Closed或Broken,但它没有弹出信息框。 – Marek

+2

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

+1

我也试过,但是没有弹出消息框。我更新了问题,以便更好地理解我的问题。 – Marek