关闭SQL连接的正确方法-不使用MARS

时间:2019-03-01 05:39:45

标签: c# sql asp.net sql-server sqlconnection

我的客户端服务器不支持MARS。所以我需要在执行每个查询后关闭每个sql连接。但是我怀疑当它进入多个嵌套循环查询时会关闭连接。 我的代码是

  protected void btn_upload_Click(object sender, ImageClickEventArgs e)
{
   try
   {
      SqlConnection con = obj.getcon();
      con.Open();
      SqlCommand cmd77 = new SqlCommand("select * from emp_details where emp_id='"+emp_id+"'", con);
      SqlDataReader dr77 = cmd77.ExecuteReader();
       if (dr77.HasRows)//dont insert if employee already exist
         {
       string query1 = "UPDATE emp_details SET emp_name= @emp_name  where emp_id=@emp_id";
        SqlCommand cmd = new SqlCommand(query1, con);
        cmd.Parameters.Add(new SqlParameter("emp_id", emp_id));
        cmd.Parameters.Add(new SqlParameter("emp_name", emp_name))
        cmd.ExecuteNonQuery();
         }
         else 
         {
        insertdataintosql(GetempID,GetempName);
         }    
        con.Close();
     }
    catch (Exception ex)
    {
       string ex=ex.Message;
    }
}
public void insertdataintosql(string emp_id, string emp_name)
{   
        SqlConnection con = obj.getcon();
        con.Open();
        string query = "insert into emp_details(emp_id,emp_name) values(@emp_id,@emp_name)";
        SqlCommand cmd = new SqlCommand(query, con);
        cmd.Parameters.Add(new SqlParameter("emp_id", emp_id));
        cmd.Parameters.Add(new SqlParameter("emp_name", emp_name))
        cmd.ExecuteNonQuery();
        con.Close();
}

我应该在哪里关闭SqlDataReader(dr77)的第一个连接,因为它在if else循环中使用?如果不使用MARS,是否需要在更新查询中打开/关闭新连接?那么有必要在关闭之前关闭dr77吗?

0 个答案:

没有答案