Tengo el siguiente código de ado.net, si ya uso usando para envolver mi DBCommand, ¿tengo que cerrar la conexión de abajo explícitamente?¿DbCommand.Close() también cerrará la conexión?
Gracias,
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;
}
}
Creo que @Satya es correcto en este caso y su respuesta es incorrecta. – Coops
@CodeBlend: en el caso de que alguien esté usando Enterprise Library, entonces sí, su respuesta es correcta. Sin embargo, aunque el código hace referencia a clases como 'Base de datos ', el contenido de la pregunta y las etiquetas no hacen referencia a EntLib. Como resultado, si las personas están buscando una respuesta a la pregunta tal como se les ha preguntado, entonces esto aún sería correcto. –