0
votes

Page d'enregistrement: ExecutenonQuery nécessite une connexion ouverte et disponible

J'ai créé une page d'enregistrement mais je reçois cette erreur:

Exécutenonquery nécessite une connexion ouverte et disponible. L'état actuel de la connexion est fermé. P> blockQuote>

Mon code est indiqué ci-dessous P>

protected void submit_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source = DESKTOP - 8PNUD8P\\MSSQLSERVER02; Initial Catalog = signup; Integrated Security = True");
    SqlCommand cmd = new SqlCommand("sp_insert", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("FULL_NAME", pname.Text);
    cmd.Parameters.AddWithValue("EMAIL_ID", pid.Text);
    cmd.Parameters.AddWithValue("MOBILE_NO.", pmn.Text);
    cmd.Parameters.AddWithValue("password", ppass.Text);
    int k = cmd.ExecuteNonQuery();
    if (k != 0)
    {
        
    }
    con.Close();
} 


2 commentaires

S'il vous plaît ouvrir la connexion avant d'utiliser


Arrêtez d'utiliser AddWithValue . Et stocker ou transmettre des mots de passe en texte brut est un risque de sécurité élevé - ne le faites pas.


3 Réponses :


1
votes

Vous avez oublié d'appeler ouvert ()

ouvre une connexion de base de données avec les paramètres de propriété spécifiés par les connexions. xxx


2 commentaires

Je le fais, mais aussi ce type d'erreur occulte "Impossible de trouver la procédure stockée" sp_insert "."


@KEYURKAKAADIYA Ce n'est pas la même question, cependant très probablement vous dirigez vers la mauvaise base de données ou vous avez le nom de nom



-1
votes

Vous pouvez utiliser l'instruction à l'aide de code> comme ci-dessous pour ouvrir la connexion et vous pouvez supprimer le con.flose () code> appel.

Vous n'avez pas vraiment besoin. Pour le fermer du tout s'il est enveloppé dans une utilisation comme l'appel à Dispose () code> fermez automatiquement la connexion pour vous. P>

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
    ...


1 commentaires

Belle copie et pâte



1
votes

Pour votre compréhension, le code ci-dessous est votre code, je viens d'ajouter une ligne con.open (); code> cela vous aide et supprime l'erreur.

Avant l'exécution de toute question avoir à ouvrir la connexion et après le travail effectué, fermez toujours la connexion. P>

protected void submit_Click(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection("Data Source = DESKTOP - 8PNUD8P\\MSSQLSERVER02; Initial Catalog = signup; Integrated Security = True");
    con.Open(); // this is the line you missed and it generates error
    SqlCommand cmd = new SqlCommand("sp_insert", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.AddWithValue("FULL_NAME", pname.Text);
    cmd.Parameters.AddWithValue("EMAIL_ID", pid.Text);
    cmd.Parameters.AddWithValue("MOBILE_NO.", pmn.Text);
    cmd.Parameters.AddWithValue("password", ppass.Text);
    int k = cmd.ExecuteNonQuery();
    if (k != 0)
    {
        
    }
    con.Close();
} 


0 commentaires