Grundsätzlich, wenn ich diesen Code ausführen, bekomme ich die folgende Fehlermeldung und ich weiß nicht, wie es zu lösen. Ich erhalte diesen Fehler, wenn ich auf die Schaltfläche klicke, dann werde ich mit dem folgenden Fehler zurück zu Visual Studio weitergeleitet. Bitte helfen Sie mir, diesen Fehler zu lösen, Hilfe wird geschätzt.A { „Es gibt bereits eine offene Datareader mit diesem Befehl zugeordnet, der zuerst geschlossen werden muss.“}
Mit diesem Befehl ist bereits ein offener DataReader verbunden, der zuerst geschlossen werden muss.
public partial class forgot : System.Web.UI.Page
{
protected void resetpass_Click(object sender, EventArgs e)
{
SqlDataReader reader = null;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("select * from reg where Username [email protected]", con);
cmd.Parameters.AddWithValue("@username", username.Text);
cmd.Parameters.AddWithValue("@security1", sec1.Text);
cmd.Parameters.AddWithValue("@security2", sec2.Text);
reader = cmd.ExecuteReader();
if (reader != null && reader.HasRows)
{
newpass.Visible = true;
confpass.Visible = true;
Label1.Text = "New Password";
Label2.Text = "Confirm New Password";
SqlDataAdapter updates = new SqlDataAdapter("update reg set Password='" + newpass.Text + "'", con);
DataSet ds = new DataSet();
updates.Fill(ds);
ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script language='javascript'>alert('The Password has been Changed')</script>");
con.Close();
}
}
}
'Fill' Methode automatisch' open' Verbindung, und vor, dass Sie sollten 'Close' vorherige Verbindung. –
[SQL-Injection-Warnung] (http://msdn.microsoft.com/en-us/library/ms161953%28v=sql.105%29.aspx) - Sie sollten ** nicht ** Ihre SQL-Anweisungen verketten - verwenden ** parametrisierte Abfragen ** statt SQL Injection zu vermeiden –
Warum bearbeiten Sie Ihren Code? –