zoukankan      html  css  js  c++  java
  • 在使用datareader结束时,要保证connection关闭

    使用CommandBehavior.CloseConnection来保证在关闭Datareader时,也关闭connection

    public static SqlDataReader(.....)

    {
                SqlCommand cmd = new SqlCommand();
                SqlConnection conn = new SqlConnection(connectionString);

                // we use a try/catch here because if the method throws an exception we want to
                // close the connection throw code, because no datareader will exist, hence the
                // commandBehaviour.CloseConnection will not work
                try
                {
                    PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
                    SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    cmd.Parameters.Clear();
                    return sdr;
                }
                catch
                {
                    conn.Close();
                    throw;
                }

    }

    在其它地主使用的方法,利用using

    using (SqlDataReader sdr = SQLHelper.ExecuteReader(SQLHelper.SQLConnString, CommandType.Text, SQL_Search_ById, adminParms))
                {
                    while (sdr.Read())
                    {
                        admin = new AdminInfo(sdr.GetInt32(0), sdr.GetString(1), sdr.GetString(2));
                    }
                }

    或者

    SqlDataReader dr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringProfile, CommandType.Text, sqlSelect.ToString(), parms);
       while(dr.Read()) {
        usernames.Add(dr.GetString(0));
       }

       dr.Close();

    //一定要保证,使用之后的状态是关闭的。

  • 相关阅读:
    jsp自定义标签
    用javascript获取屏幕高度和宽度等信息
    解决document.location.href下载文件时中文乱码
    centos7下的ifconfig命令未安装
    vmstat命令
    FPM打包工具使用
    nmap的使用
    检测硬件RDMA卡是否存在
    RDMA卡的检测方法
    硬件RDMA的驱动配置和测试
  • 原文地址:https://www.cnblogs.com/wenming205/p/1401681.html
Copyright © 2011-2022 走看看