Korrekt brug af using, try, catch og finally med SQL?
Jeg koder p.t. et website i asp.net C# med Sql Server Database.Jeg vil gerne anvende den bedste kode i mine metoder, men jeg synes mange sider paa nettet har forskellige forslag og forskellige implementationer. De fleste er dog enige om at using er den rette maade til SqlConnection, men hvordan er den HELT KORREKTE / BEDSTE struktur paa en metode?
EKSEMPEL ( fra MSDN )
private static void ReadOrderData(string connectionString)
{
string queryString =
"SELECT OrderID, CustomerID FROM dbo.Orders;";
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(
queryString, connection);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
try
{
while (reader.Read())
{
Console.WriteLine(String.Format("{0}, {1}",
reader[0], reader[1]));
}
}
finally
{
// Always call Close when done reading.
reader.Close();
}
}
}
-Hvorfor er den metode static? Man maa jo ikke bruge static i f.eks JSP?
-Burde der ikke vaere Using rundt om SqlCommand, saa den ogsaa automatisk bliver disposed efter brug?
-Hvorfor er connection.Open() og command.ExecuteReader() ikke inde i try/catch? Det kan da gaa galt?
-Der er faktisk ikke nogen catch?
Er det bedste ikke at bruge using paa SqlConnection'en og paa SqlCommand'en osv..?
Jeg haaber der er en ekspert med den klokke-klare definition paa hvordan man bedst strukturerer sine metoder saa man kan have flest mulige brugere og hurtigst/sikrest kode.