这可能是一个愚蠢的问题。假设我有20个事件处理程序将在回发后关闭。我想在事件开始之前打开与数据库的连接,然后在它们结束后立即关闭它。我在哪里将我的开放和结束语句放在我的网络表单中?
答案 0 :(得分:2)
在页面生命周期中的Page_Load
事件后引发事件。所以你可以在那里打开并在Page_PreRender
中关闭它。
但实际上我建议完全避免打开连接。打开的连接无法重用。因此,您应该尽快使用using-statement
关闭连接,最好使用{{3}}。
答案 1 :(得分:1)
回发事件发生在Load
和LoacComplete
页面的事件之间,因此如果您想保证连接已打开,可以在Load
(或之前)打开它事件并在LoadComplete
事件(或更晚)
但是,如果发生错误,可能不会调用LoadComplete
事件。
使用using
语句处理数据库连接是一种更好的方法:
using(var cn = new SqlConnection(".."))
{
cn.open();
// here your database code
}
快速浏览: