我有以下ado.net代码,如果我已经使用使用来包装我的DBCommand,是否必须明确关闭底下的连接?dbCommand.Close()是否会关闭连接?
感谢,
public static void ExecuteSQL(int Id)
{
Database db;
const string sqlCommand = "Stored Procedure Name";
try
{
db = DatabaseFactory.CreateDatabase();
using (DbCommand dbCommand = db.GetStoredProcCommand(sqlCommand))
{
db.AddInParameter(dbCommand, "p_Id", DbType.Int32, Id);
db.ExecuteNonQuery(dbCommand);
**//do I have to close connection explicitely here??**
if (dbCommand.Connection.State != ConnectionState.Closed)
{
dbCommand.Connection.Close();
}
dbCommand.Connection.Dispose();
}
}
catch (Exception ex)
{
Logger.Log.Error(ex.StackTrace, ex);
throw;
}
}
我相信@Satya在这种情况下是正确的,你的回答实际上是不正确的。 – Coops 2014-06-27 13:40:19
@CodeBlend:在有人使用企业库的情况下,是的,她的回答是正确的。但是,尽管代码确实引用类如“数据库”,但问题的内容和标记不引用EntLib。结果,如果人们正在寻找对问题的回答,那么这仍然是正确的。 – 2014-11-26 22:36:57