【发布时间】:2010-07-12 14:47:19
【问题描述】:
ExecuteScalar 会自动关闭连接吗?
【问题讨论】:
标签: ado.net executescalar
ExecuteScalar 会自动关闭连接吗?
【问题讨论】:
标签: ado.net executescalar
不,您需要在使用 ExecuteScalar() 时显式打开和关闭连接。
【讨论】:
您可以使用扩展方法创建重载,但我不确定这是否是个好主意。
public static object ExecuteScalar(this IDbCommand Command, bool CloseConnetion)
{
(if Command == null)
throw new NullReferenceException();
object obj = null;
try
{
obj = Command.ExecuteScalar();
}
finally
{
if(CloseConnection && Command.Connection.State != ConnectionState.Closed)
Command.Connection.Close();
}
return obj;
}
【讨论】:
这取决于。
可以编写IDbCommand 的实现来关闭连接。
但据我所知,提供的实现不会关闭连接。
【讨论】: