Me acaban de aconsejar poner un bloque completo using
dentro de un try
, de lo contrario, el alcance using
evitará que la excepción sea atrapada. Sin embargo, ¿no impediría que el using
elimine correctamente sus recursos si se lanzara una excepción? Si tengo el siguiente código, ¿dónde debo colocar los bloques try
?Dónde ponerlo try/catch cuando use IDisposable
using (connSQL = new SqlConnection(strConn))
{
connSQL.Open();
using (SqlCommand commSQL = new SqlCommand(strPreparedStatement, connSQL))
{
if (sqlParameters != null)
{
for (int i = sqlParameters.GetLowerBound(0); i <= sqlParameters.GetUpperBound(0); i++)
{
commSQL.Parameters.Add(sqlParameters[i]);
}
}
drSQL = commSQL.ExecuteReader();
dtReturn.Load(drSQL);
commSQL.Parameters.Clear();
}
}
En esta aplicación, es mucho más importante asegurarse de que las conexiones a la base de datos no comiencen a acumularse debido a excepciones.
Interesante. Todos muy buenos puntos. Aprecio el punto acerca de 'SqlDataReader'. Eché de menos eso. – Andrew
Al ver su edición, de nuevo mucho más simple. Gracias. – Andrew