Erste Frage:
Sag ich habe
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();
}
Wird die Verbindung geschlossen? Denn technisch kommen wir nie so zum letzten }wie returnvorher.
Zweite Frage:
Diesmal habe ich:
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*/ }
Sagen trywir jetzt irgendwo in der wir bekommen einen Fehler und es wird gefangen. Wird die Verbindung immer noch geschlossen? Denn wieder überspringen wir den Rest des Codes in der tryund gehen direkt zur catchAnweisung.
Denke ich zu linear darüber, wie es usingfunktioniert? dh Wird Dispose()einfach angerufen, wenn wir den usingBereich verlassen ?