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(); }
3 Réponses :
Vous avez oublié d'appeler ouvre une connexion de base de données avec les paramètres de propriété spécifiés par
les connexions. p>
blockQuote> ouvert () code>
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
Vous pouvez utiliser l'instruction Vous n'avez pas vraiment besoin. Pour le fermer du tout s'il est enveloppé dans une utilisation comme l'appel à à l'aide de code> comme ci-dessous pour ouvrir la connexion et vous pouvez supprimer le con.flose () code> appel. Dispose () code> fermez automatiquement la connexion pour vous. P> using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
...
Belle copie et pâte
Pour votre compréhension, le code ci-dessous est votre code, je viens d'ajouter une ligne Avant l'exécution de toute question avoir à ouvrir la connexion et après le travail effectué, fermez toujours la connexion. P> con.open (); code> cela vous aide et supprime l'erreur. 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();
}
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.