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

初级有关问题,请大侠们指点迷津,重在参与

2012-08-07 
初级问题,请大侠们指点迷津,,,,,,重在参与SqlDbConnection mydb new SqlDbConnection()mydb.conn.Open(

初级问题,请大侠们指点迷津,,,,,,重在参与
SqlDbConnection mydb = new SqlDbConnection();
  mydb.conn.Open();

  string strread = "select * from tab";
  SqlCommand cmd = new SqlCommand(strread, mydb.conn);
  SqlDataReader dr = cmd.ExecuteReader();
  if (dr.Read())
  {
  so something....
  }
  else
  {
  Response.Write("<script>alert('记录不存在,确认返回!');history.go(-1);</script>");
  return;
  }
  dr.Dispose();
  cmd.Dispose();
  mydb.conn.Close();





我想问的是,要都能关闭数据链接此处的mydb.conn.Close()放在哪里最好,,,,,??

如果没有取到记录,就执行js那一句返回上一页了,那下面的dr.Dispose();cmd.Dispose();mydb.conn.Close();有没有闭关啊?


新手学习求指点,,,,,,,,,,,,,,,,,,,,,

谢谢!!!!!!!!

[解决办法]
获取到数据就可以关闭了。放 SqlDataReader dr = cmd.ExecuteReader();
这句下面都可以 
不过你放在最后也没什么 快不了多少
[解决办法]
不想写关闭的话,那就用
using(SqlConnection con = new SqlConnection("XXX"))
{
using(SqlCommand cmd = new SqlCommand(xx,xx))
{

}
}

如果不使用了,GC机制会在适当的时候自动回收资源的
[解决办法]
如果都是局部的,方法运行完就销毁了,当在代码结尾手动释放是对的
[解决办法]
SqlDbConnection mydb = new SqlDbConnection();
SqlDataReader dr;
try{
mydb.conn.Open();

string strread = "select * from tab";
SqlCommand cmd = new SqlCommand(strread, mydb.conn);
dr = cmd.ExecuteReader();
if (dr.Read())
{
so something....
}
else
{
Response.Write("<script>alert('记录不存在,确认返回!');history.go(-1);</script>");
return;
}
catch{}
finally{
dr.Dispose();
cmd.Dispose();
mydb.conn.Close();
}

放在finally中
[解决办法]
在方法的末尾关闭就行
或者
using(SqlDbConnection mydb = new SqlDbConnection())
{
}


[解决办法]

先找个DBhelper类研究研究
[解决办法]
没有try catch finally 写数据库的操作代码很危险,尤其你的代码中还有datareader,写在finally就可以。。

热点排行