• sqlHelper中DataReader的关闭问题


      我们在借助于sqlHelper使用ExecuteDataReader的时候,是不能立即使用using关键字和自动调用dispose或者close来关闭数据库的连接的。为什么?因为DataReader不像SqlDataAdapter,会将查询到的结果放到一个DataSet中,然后断开与数据库的连接。DataReader必须保持与数据库的长期连接。那么怎么样来使得它在用完之后进行释放呢?ExecuteReader有一个重载的方法,ExecuteReader(CommandBehavior.CloseConnection);

      看下面的一个具体的例子。

    public static SqlDataReader ExecuteDataReader(string cmdText,
                params SqlParameter[] parameters)
            {
                SqlConnection conn = new SqlConnection(connstr);
                conn.Open();
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                }
            }

      

  • 相关阅读:
    数据库练习
    pymysql
    数据库索引
    数据库查询
    数据库操作
    数据库建表
    数据库初识
    shell 编程
    Struts2与SpringMVC
    SpringAOP
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/2520414.html
Copyright © 2020-2023  润新知