Nếu kết nối với cơ sở dữ liệu tiêu tốn rất nhiều tài nguyên, tại sao kết nối cơ sở dữ liệu luôn đóng trong ứng dụng của bạn nếu bạn phải mở lại? Tôi có thể chỉ làm cho kết nối này có sẵn trên toàn cầu trong suốt ứng dụng của tôi để các lớp và phương thức khác có thể tái sử dụng nó không?Tại sao luôn đóng kết nối Cơ sở dữ liệu?
Ví dụ (trong mã giả):
public class PopulateGridViews()
{
public SqlConnection conn = new SqlConnection(@"Database:DATABASE");
conn.Open();
void PopulateGrid1()
{
SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE1");
cmd.Connection = conn;
cmd.ExecuteNonQuery();
cmd.Dispose();
// Populate Grid1
}
void PopulateGrid2()
{
SqlCommand cmd = new SqlCommand("SELECT * FROM TABLE2");
cmd.Connection = conn;
cmd.ExecuteNonQuery();
cmd.Dispose();
// Populate Grid2
}
}
Tôi khuyên bạn nên đọc [SQL Server Connection Pooling (ADO.NET)] (http://msdn.microsoft.com/en-us/library/8xx3tyca.aspx). –