事件处理后会发生什么页面功能?

时间:2012-09-25 21:53:44

标签: asp.net

这可能是一个愚蠢的问题。假设我有20个事件处理程序将在回发后关闭。我想在事件开始之前打开与数据库的连接,然后在它们结束后立即关闭它。我在哪里将我的开放和结束语句放在我的网络表单中?

2 个答案:

答案 0 :(得分:2)

在页面生命周期中的Page_Load事件后引发事件。所以你可以在那里打开并在Page_PreRender中关闭它。

但实际上我建议完全避免打开连接。打开的连接无法重用。因此,您应该尽快使用using-statement关闭连接,最好使用{{3}}。

答案 1 :(得分:1)

您需要了解ASP.NET page life cycle

回发事件发生在LoadLoacComplete页面的事件之间,因此如果您想保证连接已打开,可以在Load(或之前)打开它事件并在LoadComplete事件(或更晚)

中关闭它

但是,如果发生错误,可能不会调用LoadComplete事件。

使用using语句处理数据库连接是一种更好的方法:

using(var cn = new SqlConnection(".."))
{
   cn.open();
   // here your database code
}

快速浏览:

enter image description here