Jim thực hành của bạn về việc có các phương thức kết nối mở và đóng bên trong một lớp khác là rất cũ, sự phát triển .NET hiện đại tuân theo một khuôn mẫu như thế này ngày nay:
using (SqlConnection conn = new SqlConnection("connection string here"))
using (SqlCommand cmd = new SqlCommand("sql query", conn))
{
// execute it blah blah
}
xem tại đây: Đóng SqlConnection và SqlCommand c # hoặc tìm kiếm trong SO cho hàng trăm câu hỏi và câu trả lời, tất cả đều giống nhau, đóng kết nối ngay lập tức bằng cách sử dụng như trong ví dụ này hoặc bằng thử / cuối cùng bên trong cùng một phương thức, không cần một phương thức để mở và trên phương thức để đóng nó, chỉ dễ xảy ra lỗi nếu có bất kỳ điều gì xảy ra ở giữa.