web-dev-qa-db-fra.com

Méthode la plus efficace pour tester la disponibilité des chaînes de connexion SQL

J'ai ce code que j'ai essayé de faire tester la connectivité des chaînes SQL, mais je ne sais pas comment gérer la partie avec connection.Open = true pourriez-vous m'aider à résoudre ce problème? Merci beaucoup pour votre temps.

  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
        {

        }
    }

Il dit: "Impossible d'attribuer" ouvert "car il s'agit d'un" groupe methoud "" Je sais que ce code peut être totalement mauvais, mais j'ai besoin de gérer cela d'une manière ou d'une autre et je n'ai aucune idée de la bonne façon. Je vous remercie.

C'est ce qui ne fonctionne pas réellement pour une connexion non ouverte:

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

Vous utilisez connection.Open = true Comme s'il s'agissait d'une propriété.

C'est une méthode: connection.Open()

Utilisez l'énumération ConnectionState pour déterminer si la connexion est ouverte ou non, par exemple:

connection.State == ConnectionState.Open
18
DGibbs

Vous devez vérifier s'il est ouvert par ce code:

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