2013-07-25 8 views
10

私はこれをテストしようとしましたが、このコードを使用しましたが、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 
     { 

     } 
    } 

それは言う:「それはmethoudグループ」ですので、 『オープン』 asignすることはできません」私はこのコードはば完全に悪いかもしれないことを知っているが、私は何とかこれを処理する必要があり、右が何であるか見当がつかない方法。ありがとうございました。

これは実際には、開いていない接続のために働いていないものです。

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を試みましたが、msgボックスをポップアップしませんでした。 – Marek

+2

私は 'connection.State!= ConnetionState.Open'を試してみました – wudzik

+1

私もそれを試みましたが、メッセージボックスもポップアップしませんでした。質問を更新して、私のproblémをよりよく理解できるようにしました。 – Marek