С этой командой уже связан открытый datareader, который должен быть закрыт в первую очередь. С#
с этой командой уже связан открытый datareader, который должен быть закрыт в первую очередь
Мой код выглядит следующим образом
protected void btnsubmit_Click(object sender, EventArgs e) { try { String strConnString = ConfigurationManager.ConnectionStrings["IvcSpiderDBConnectionStrings"].ConnectionString; SqlConnection con = new SqlConnection(strConnString); con.Open(); SqlCommand check_User_Name = new SqlCommand("SELECT * FROM [master].[settings] WHERE ([year] = @year) and ([batch] = @batch) ", con); check_User_Name.Parameters.AddWithValue("@year", txtyear.Text); check_User_Name.Parameters.AddWithValue("@batch", txtbatch.Text); SqlDataReader dr = check_User_Name.ExecuteReader(); if (dr.HasRows) { ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please update year or batch and then click update');", true); return; } else { SqlCommand cmd = new SqlCommand("UPDATE [master].[settings] set year = '" + txtyear.Text.ToString() + "',batch = '" + txtbatch.Text.ToString() + "'", con); cmd.ExecuteNonQuery(); ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Records updated ');", true); con.Close(); BindData(); } dr.Close(); } catch (Exception ex) { Logger log = new Logger(); log.WriteToErrorLog("Error while updating data", "EXCEPTION", ex.Message.ToString(), "", ""); } }
После обновления запись в текстовом поле показывает ниже ошибку следующим образом
с этой командой уже связан открытый datareader, который должен быть закрыт в первую очередь.
как решить эту ошибку.
Что я уже пробовал:
с этой командой уже связан открытый datareader, который должен быть закрыт в первую очередь
Мой код выглядит следующим образом
protected void btnsubmit_Click(object sender, EventArgs e) { try { String strConnString = ConfigurationManager.ConnectionStrings["IvcSpiderDBConnectionStrings"].ConnectionString; SqlConnection con = new SqlConnection(strConnString); con.Open(); SqlCommand check_User_Name = new SqlCommand("SELECT * FROM [master].[settings] WHERE ([year] = @year) and ([batch] = @batch) ", con); check_User_Name.Parameters.AddWithValue("@year", txtyear.Text); check_User_Name.Parameters.AddWithValue("@batch", txtbatch.Text); SqlDataReader dr = check_User_Name.ExecuteReader(); if (dr.HasRows) { ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Please update year or batch and then click update');", true); return; } else { SqlCommand cmd = new SqlCommand("UPDATE [master].[settings] set year = '" + txtyear.Text.ToString() + "',batch = '" + txtbatch.Text.ToString() + "'", con); cmd.ExecuteNonQuery(); ScriptManager.RegisterStartupScript(this, GetType(), "showalert", "alert('Records updated ');", true); con.Close(); BindData(); } dr.Close(); } catch (Exception ex) { Logger log = new Logger(); log.WriteToErrorLog("Error while updating data", "EXCEPTION", ex.Message.ToString(), "", ""); } }
После обновления запись в текстовом поле показывает ниже ошибку следующим образом
с этой командой уже связан открытый datareader, который должен быть закрыт в первую очередь.
как решить эту ошибку.