第一种形式;
public DataTable getDataTable(string strSQL)
{
try
{
open(); //打开数据库连接
数据库,操作
}
catch
{
异常
}
finally
{
if(Conn.state=ConncetionState.open)
{
Close(); //关闭数据库连接
}
}
}
第二种形式: 自动关闭数据库
public DataTable getDataTable(string strSQL,string connString)
{
DataTable dt;
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
//数据库操作;
return dt;
}
}
catch
{
异常
}
}
其实之所以ms把ado.net设计成inmemory database就是不希望connection总是连接的状态,有可能的话会尽快收回连结池,所以频繁的开关connection是ado.net乐意看到的。而且在带宽急速提高的今天这也是有效分担服务器负载的好方法。
————————————————————————————————————————
不对。这个说法没有区分逻辑连接还是物理连接。实际上仅对逻辑连接才需要尽快关闭,对物理连接需要尽量推迟关闭并且尽量复用。
如果你使用一种数据库引擎的DBConnection的子类,它不自动支持连接池功能,你就不应该频繁开关connection,给你的编程建议与SqlCnnection绝对完全想反。
c#自动关闭数据库连接
最新推荐文章于 2022-09-05 16:27:53 发布