日期:2014-05-17  浏览次数:20447 次

杨中科老师错了?sql连接不应该用using语句?
呵呵,基本肯定是我的理解有误,他高级讲师基本不可能在这犯错!!

我的理解是:
  用using语句块 每次都会执行 con.Database(), 这么写就没有连接池的概念了吧?每次都得重新new 一个SqlConnection 连接数据库,有效率太低了吧?
  我的理解是 Database()方法 是完全释放资源啊 Close()方法才是暂时关闭连接吧?
  我以前都是把 SqlConnection 当做一个类的字段来处理的 用完了Close()一下而已 
C# code
    class SqlHelper
    {
        private static readonly string connstr = ConfigurationManager.ConnectionStrings["lkfCon"].ConnectionString;

        public int ExecuteNonQuery(string cmdText, params SqlParameter[] parameters)
        {
            
            using (SqlConnection con = new SqlConnection(connstr))
            {
                con.Open();
                using (SqlCommand cmd = con.CreateCommand())
                {
                    cmd.CommandText = cmdText;
                    cmd.Parameters.AddRange(parameters);
                    return cmd.ExecuteNonQuery();
                }                 
             }
        }
    }


------解决方案--------------------
探讨
呵呵,基本肯定是我的理解有误,他高级讲师基本不可能在这犯错!!

我的理解是:
用using语句块 每次都会执行 con.Database(), 这么写就没有连接池的概念了吧?每次都得重新new 一个SqlConnection 连接数据库,有效率太低了吧?
我的理解是 Database()方法 是完全释放资源啊 Close()方法才是暂时关闭连接吧?
我以前都是把 ……