Première question:
Dire que j'ai
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
string storedProc = "GetData";
SqlCommand command = new SqlCommand(storedProc, connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@EmployeeID", employeeID));
return (byte[])command.ExecuteScalar();
}
La connexion se ferment? Parce que, techniquement, nous n'avons jamais arriver au dernier }
comme nous l' return
avant elle.
Deuxième question:
Cette fois, j'ai:
try
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
int employeeID = findEmployeeID();
connection.Open();
SqlCommand command = new SqlCommand("UpdateEmployeeTable", connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@EmployeeID", employeeID));
command.CommandTimeout = 5;
command.ExecuteNonQuery();
}
}
catch (Exception) { /*Handle error*/ }
Maintenant, dire que quelque part dans l' try
, on obtient une erreur et il se fait attraper. La connexion encore fermé? Car, encore une fois, nous avons passer le reste du code dans l' try
et aller directement à l' catch
déclaration.
Suis-je trop penser de façon linéaire dans la façon dont using
fonctionne? ie N' Dispose()
simplement appelée lorsque nous quittons l' using
portée?