连接池 [英] Connection Pooling
本文介绍了连接池的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下的code,如果我用康恩== NULL在最后我还是使用连接池? 我知道这是一个很好的做法,关闭连接,但如何处理整个连接对象?
公共无效的ExecuteNonQuery(的SqlCommand CMD)
{
// ========== ==========连接//
SqlConnection的康恩=新的SqlConnection(strConStr);
尝试
{
// ==========打开连接========== //
Conn.Open();
// ==========执行命令========== //
Cmd.Connection =康恩;
Cmd.CommandTimeout = 180;
Cmd.ExecuteNonQuery();
}
赶上(例外EXC)
{
扔EXC;
}
最后
{
// ========关闭连接======== //
如果(Conn.State == ConnectionState.Open)
{Conn.Close(); }
// ========处置对象======== //
康恩= NULL;
}
}
解决方案
首先,考虑使用使用
,第二,让框架处理处置。该托管提供商会做基于筹集的统筹上的连接字符串
公共无效的ExecuteNonQuery(的SqlCommand CMD)
{
// ========== ==========连接//
使用(SqlConnection的康恩=新的SqlConnection(strConStr))
{
// ==========打开连接========== //
Conn.Open();
// ==========执行命令========== //
Cmd.Connection =康恩;
Cmd.CommandTimeout = 180;
Cmd.ExecuteNonQuery();
}
}
I have the following code, If I use conn == null in finally do I still use connection pooling? I know it is a good practice to close your connection but how about disposing the whole connection object?
public void ExecuteNonQuery(SqlCommand Cmd)
{
//========== Connection ==========//
SqlConnection Conn = new SqlConnection(strConStr);
try
{
//========== Open Connection ==========//
Conn.Open();
//========== Execute Command ==========//
Cmd.Connection = Conn;
Cmd.CommandTimeout = 180;
Cmd.ExecuteNonQuery();
}
catch (Exception Exc)
{
throw Exc;
}
finally
{
//======== Closing Connection ========//
if (Conn.State == ConnectionState.Open)
{ Conn.Close(); }
//======== Disposing object ========//
Conn = null;
}
}
解决方案
First, consider using using
, second, let the framework handle disposal. The managed providers will do pooling based on the connection string.
public void ExecuteNonQuery(SqlCommand Cmd)
{
//========== Connection ==========//
using(SqlConnection Conn = new SqlConnection(strConStr))
{
//========== Open Connection ==========//
Conn.Open();
//========== Execute Command ==========//
Cmd.Connection = Conn;
Cmd.CommandTimeout = 180;
Cmd.ExecuteNonQuery();
}
}
这篇关于连接池的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文