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();

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

  • 相关阅读:
    nginx配置文件中的location中文详解
    binlog、redo log、undo log区别
    OLTP和OLAP的区别
    MPP、SMP、NUMA概念介绍
    NUMA体系结构介绍
    在Linux下判断系统当前是否开启了超线程
    NUMA的取舍与优化设置
    LRU缓存算法
    optimize table
    使用innodb_force_recovery解决MySQL崩溃无法重启问题
  • 原文地址:https://www.cnblogs.com/wenming205/p/1401681.html
Copyright © 2011-2022 走看看