첫 번째 질문 :
내가 가지고 있다고
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();
}
연결이 닫혔습니까? 기술적 }
으로 우리는 return
이전 과 다름 없이 끝까지 도달하지 않기 때문입니다.
두번째 질문 :
이번에는 :
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*/ }
이제 어딘가에 try
오류가 발생하면 오류가 발생합니다. 연결이 여전히 닫혀 있습니까? 다시, 우리는 코드의 나머지 코드를 건너 뛰고 명령문 try
으로 직접 이동 catch
합니다.
using
작동 방식에 너무 선형 적으로 생각하고 있습니까? 즉 Dispose()
, 우리가 using
범위를 벗어날 때 단순히 호출 됩니까 ?