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

关于SqlConnection连接,关闭的有关问题

2011-12-25 
关于SqlConnection连接,关闭的问题这是微软petshop 4.0中的两个方法:public static int ExecuteNonQuery(S

关于SqlConnection连接,关闭的问题
这是微软petshop 4.0中的两个方法:

 public static int ExecuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) {

  SqlCommand cmd = new SqlCommand();

  PrepareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);
  int val = cmd.ExecuteNonQuery();
  cmd.Parameters.Clear();
  return val;
  }

 

private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms) {

  if (conn.State != ConnectionState.Open)
  conn.Open();

  cmd.Connection = conn;
  cmd.CommandText = cmdText;

  if (trans != null)
  cmd.Transaction = trans;

  cmd.CommandType = cmdType;

  if (cmdParms != null) {
  foreach (SqlParameter parm in cmdParms)
  cmd.Parameters.Add(parm);
  }

 没有关闭连接,测试了下,我调用ExecuteNonQuery后,连接还是打开的,是不是故意这么设计的,还是什么原因



[解决办法]
应该有关闭的地方吧
[解决办法]
自己 using了
[解决办法]
肯定是自己手动关闭~
也许你要用那个conn还做点别的事,如果PrepareCommand给你关闭了,你不又要打开?
[解决办法]
.net里面有内存回收机制的,在petshop里面没有显式调用close,因为内存回收,会自动把没有的空闲的conntion关闭掉,所以不用担心。另外还有数据库连接池这个功能。可以上网找找帮助了解一下。欢迎在广东工作的技术员和美工加入QQ群1884645。
[解决办法]
关闭之后别忘了释放缓存
con.Close();
con.Dispose();//释放con的缓存
cmd也要释放
[解决办法]
自己写个异常扑获,try下,在里面写关闭。

热点排行