web-dev-qa-db-ja.com

SQL接続文字列の可用性をテストする最も効率的な方法

SQLコードの接続をテストしようとしたこのコードを下に持っていますが、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");
            }
        }
11
Marek

プロパティのように_connection.Open = true_を使用しています。

それはメソッドです:connection.Open()

ConnectionState enumを使用して、接続が開いているかどうかを判断します。例:

_connection.State == ConnectionState.Open
_
18
DGibbs

次のコードで開いているかどうかを確認する必要があります。

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