我想問一下使用數據庫連接並關閉它們的常用方法。確保連接關閉
這是我的程序,但我在exeption中看到,connection.Close()將不會執行。
我應該使用try-catch爲整個塊嗎?因爲某些原因,我看到大多數人不會。
using (SqlConnection connection = new SqlConnection(ConnectionString))
{
using (SqlCommand command = new SqlCommand())
{
command.CommandText = "procedure";
command.Connection = connection;
command.CommandType = CommandType.StoredProcedure;
tmpParameter = DBUtils.createInSQLParam("@ImageID", SqlDbType.SmallInt, htmlImageId);
command.Parameters.Add(tmpParameter);
command.Connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
htmlImageDetails = GetHtmlImageDetailsFromReader(reader, true, out newId);
reader.Close();
}
connection.Close();
return htmlImageDetails;
}
}
你看到什麼異常? –
這似乎回答你的問題 - http://stackoverflow.com/a/4717802/978528。 – nickfinity
使用「使用」連接時不需要關閉/閱讀器自動關閉。 .net默認使用連接池,因此如果將其置於池中以供重用(這可以提高大多數情況下的性能),則連接不會關閉。 – Peter