关闭数据库
从数据库读取数据,然后关闭数据库,两种方法比较,有什么不同?哪种效果号?:
1,
conn.Open();
dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
2,
try
{
conn.Open();
dr = cmd.ExecuteReader();
return dr;
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if(dr!=null)
dr.Close();
if(conn.State==ConnectionState.Open)
conn.Close();
}
顺便问问,网页经常提示超出最大连接池,如何处理这个问题?
------解决方案--------------------还有一个办法:
using(sqlconnection con=new sqlconnection(...))
{
此处是你的取数据代码。
}
这种方法自动dispose你的con。
------解决方案--------------------当然是第二种正规一些
第二个问题的原因可能是:
1.每次都创建一个连接,但是没有关闭数据库连接
2.同时有好多人在访问
------解决方案--------------------第二种方法有问题,你return了reader,这个时候是不能关闭数据库的,否则reader无法使用
必须reader使用完了以后,reader.close(),然后conn.close(),或者
cmd.ExecuteReader(CommandBehavior.CloseConnection); ,直接reader.close()