2013-07-25 13 views
10

Bunu yapmak istediğim bu kodu aldım SQL dize bağlantısı sınayın, ancak bu sorunu çözmem için bana yardım edermisin connection.Open = true? Zaman ayırdığın için çok teşekkürler.SQL bağlantı dizesi kullanılabilirliğini sınamanın en etkili yolu

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 
     { 

     } 
    } 

O diyor ki: Ben bu kod toplam kötü olabileceğini biliyoruz "bunun bir 'methoud grup' olduğundan 'açık' asign Can not", ama bir şekilde bu ele gerekir ve doğru olanı hiçbir fikrim yok yol. Teşekkür ederim.

Bu aslında değil açılmış bağlantı için çalışmıyor şudur: bir özellik sanki sen connection.Open = true kullandığınız

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()', bir özellik değil, void döndüren bir ** yöntemidir. Buna bir değer atayamazsınız. Cevabımı gör. – DGibbs

cevap

16

.

Bu bir yöntem var: Bağlantı açık olup olmadığını connection.Open()

belirlemek için ConnectionState enum kullanın örn:

Bu kodla açık mı diye kontrol etmeliyiz
connection.State == ConnectionState.Open 
+0

Merhaba, zaman ayırdığınız için teşekkür ederim, nasıl görüneceğini sorabilir miyim (eğer başarılı bir şekilde bağlanmadıysa). Bağlantıyı denedim. == ConnectionState.Closed veya Broken ama msg kutusunu açmadı. – Marek

+0

'connection.State == ConnectionState.Closed' öğesini nerede aradınız? Sorunuzu güncelleyebilir misiniz? – DGibbs

+0

Daha iyi anlayabilmeniz için soruyu güncelledim – Marek

3

:

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

Merhaba, zaman ayırdığınız için teşekkür ederim, Nasıl görüneceğini sorabilir miyim (eğer başarılı bir şekilde bağlanmadı mı?) Bağlantıyı denedim.Temel == ConnectionState.Closed veya Broken ama msg kutusunu açmadı. – Marek

+2

Bağlantıyı denedim: connection.State! = ConnetionState.Open' – wudzik

+1

Bunu da denedim, ancak mesaj kutusunu da açmadı. Sorunu güncelledim böylece sorunumu daha iyi anlayabilirsiniz. – Marek