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 return
vorher.
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 try
wir 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 try
und gehen direkt zur catch
Anweisung.
Denke ich zu linear darüber, wie es using
funktioniert? dh Wird Dispose()
einfach angerufen, wenn wir den using
Bereich verlassen ?