打开/关闭表单中的连接
本文关键字:连接 表单 打开 | 更新日期: 2023-09-27 17:54:41
我有关于SQL连接打开和关闭的问题。哪一个更好:
- 在
form_load
事件中打开连接,在form_closing
事件中关闭连接。 - 打开和关闭每个呼叫的连接。
当然有时候我需要经常读取数据
一般来说,您应该尽可能缩短数据库连接打开的时间。
因此,在using
块中打开和关闭每个呼叫的每个连接以确保处置。
我想补充的是,非应该在表单中发生-表单应该与处理UI和UI事件有关-打开和关闭连接应该发生在您的数据访问层
我建议你最好选择方法2如果选择1,可能会引起其他问题
这取决于您希望如何/何时使用该连接。但是,您应该启用连接池,它应该通过在一个池中为您保留可用的连接来减少打开和关闭多个连接。
我绝对推荐按需打开和关闭连接。由于连接池打开一个连接是相当便宜的,这意味着你不必处理检查连接,每次使用它,以确保它仍然是打开的。
你绝对应该选第二个。特别是在一个表单中,你不知道用户将占用多长时间的连接。
请记住在声明连接时使用Using语句,以确保无论发生什么,连接都将再次关闭。
最佳实践是尽快关闭sqlconnection,因此使用using(它实现了一个IDisposable接口)来使用sqlconnection,如下所示:
using (SqlConnection con = new SqlConnection(connectionString))
{
//
// Open the SqlConnection.
//
con.Open();
//do your process
}
我会选择第二个,因为与数据库的交互并不总是需要的。通常我们加载数据并保存数据。当与数据库交互频繁且打开和关闭连接的成本很高时,长时间打开连接是有用的。与数据库交互的代码应该从UI中分离出来,放在数据访问层。您可以创建一个单独的类库来执行数据库操作,或者至少在同一个项目中为数据库创建类。
打开连接的一般指导线是打开打开连接越晚越好,越快越好