首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

关于sqlhelper里边connection关闭有关问题

2013-07-04 
关于sqlhelper里边connection关闭问题/// summary/// 基于SQL命令或基于存储过程 实现数据库操作/// /s

关于sqlhelper里边connection关闭问题
/// <summary>
    /// 基于SQL命令或基于存储过程 实现数据库操作
    /// </summary>
    /// <param name="sql">insert,update,delete相关命令</param>
    /// <returns>受影响的行数 int </returns>
     public int ExcuteSQLReturnInt(string sql,SqlParameter[] pars,CommandType type)
     {
       
         //创建连接对象
         SqlConnection conn = new SqlConnection(MyConnString);
         try
         {
             //实例化命令对象
             SqlCommand cmd = new SqlCommand(sql, conn);
             //打开连接对象
             if (conn.State == ConnectionState.Closed || conn.State == ConnectionState.Broken)
             {
                 conn.Open();
             }

             #region 给命令对象参数集合添加参数
             if (pars != null && pars.Length > 0)
             {
                 foreach (SqlParameter p in pars)
                 {
                     cmd.Parameters.Add(p);
                 }
             }


             
             #endregion

             cmd.CommandType = type;


             int count = cmd.ExecuteNonQuery();
             return count;
         }
这是其中的一个方法,这里边没有关闭连接,这个有问题么???????
[解决办法]
建议用using(SqlConnection conn = new SqlConnection(MyConnString)){
try


         {
             //打开连接对象
             if (conn.State == ConnectionState.Closed 
[解决办法]
 conn.State == ConnectionState.Broken)
             {
                 conn.Open();
             }

             #region 给命令对象参数集合添加参数
             if (pars != null && pars.Length > 0)
             {
                 foreach (SqlParameter p in pars)
                 {
                     cmd.Parameters.Add(p);
                 }
             }


             
             #endregion

             cmd.CommandType = type;


             int count = cmd.ExecuteNonQuery();
             return count;
         }
catch (Exception ex)
            {
conn.Close();
            }
            finally { 
conn.Close();

}
}


}
将链接对象套起来,再catch 和finally 里面将链接释放到! 
             //实例化命令对象
             SqlCommand cmd = new SqlCommand(sql, conn);
这个就不需要了。
[解决办法]
放100个心好了,如果用的是SQLHelper,里面应该有关闭的,自己看下代码就知道了,微软出的包,出问题的概率不会太大的,这东西好多人在用。没听谁说出过啥大问题,有问题的话先看自己的东东是不是完善了。

热点排行