Pertanyaan pertama:
Katakanlah saya punya
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();
}
Apakah koneksi ditutup? Karena secara teknis kami tidak pernah mencapai yang terakhir }seperti returnsebelumnya.
Pertanyaan kedua:
Kali ini saya punya:
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*/ }
Sekarang, katakan di suatu tempat di trykita mendapat kesalahan dan itu tertangkap. Apakah koneksi masih tertutup? Karena sekali lagi, kami melewatkan sisa kode di trydan langsung ke catchpernyataan.
Apakah saya berpikir terlalu linier dalam cara usingkerjanya? yaitu Apakah Dispose()langsung dipanggil saat kita meninggalkan usingruang lingkup?