我有以下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