DataBind事件后如何捕获异常?

时间:2014-01-08 04:29:00

标签: c# asp.net error-handling sqldatasource

我有下一个代码:

   protected void Page_Load(object sender, EventArgs e)
    {
       // some code-------------------
       sourceDetails.SelectCommand += "<new condition>";
       this.DataBind();
    }

sourceDetails是.aspx页面中的SqlDataSource对象,它对数据库有查询。

"<new condition>" - 条件发生变化。

如果条件不正确,我的页面会出错。我希望在它出现之前捕获错误。

3 个答案:

答案 0 :(得分:0)

这将提醒错误:

try
{
    // some code-------------------
    sourceDetails.SelectCommand += "<new condition>";
    this.DataBind();
}
catch (SqlException e)
{
    ClientScript.RegisterStartupScript(this.GetType(), "Alert", "alert('" + e.Message + "');", true);
}

答案 1 :(得分:0)

正如您在ASP.NET Page Life Cycle overview post中看到的那样,有特定的events for data binding handling。也许你可以使用这些生命周期钩子(DataBinding eventDataBound event)来防止错误甚至更好地处理它。

希望我帮忙!

答案 2 :(得分:0)

感谢关注我的问题!我发现下一个解决方案 1. SqlDataSource有事件OnSelected。我用过它。 我在OnSelected事件中编写了这段代码:

protected void sourceDetails_Selected(object sender, SqlDataSourceStatusEventArgs e)
    {
        if (e.Exception != null)
        {
            //Doing what we need to do
        }
    }

SqlDataSourceStatusEventArgs包含阻止异常和处理异常所需的所有数据:ExceptionCommand属性。