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

我有这个代码,我试图让它测试SQL字符串连接,但我不知道如何处理connection.Open = true部分connection.Open = true你能帮我解决这个问题吗? 非常感谢您的参与。

  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 { } } 

它说:“不能’开放’,因为它是’一个’组织”我知道这个代码可能完全不好,但我需要以某种方式处理这个问题,并且不知道什么是正确的方法。 谢谢。

这实际上不适用于未打开的连接:

 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"); } } 

你正在使用connection.Open = true ,好像它是一个属性。

这是一个方法: connection.Open()

使用ConnectionState枚举来确定连接是否打开,例如:

 connection.State == ConnectionState.Open 

您需要检查此代码是否打开:

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