Как отловить исключение после события DataBind?

У меня есть следующий код:

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

sourceDetails является SqlDataSource объект на странице.aspx, который имеет запрос к базе данных.

"<new condition>" - состояние, которое меняется.

Если условие неверно, я получаю сообщение об ошибке на своей странице. Я хочу поймать ошибку, прежде чем она появится.

3 ответа

Решение

Спасибо за внимание на мой вопрос! Я нашел следующее решение: 1. SqlDataSource имеет событие OnSelected. Я использовал это. 2. Я написал этот код в событии OnSelected:

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

SqlDataSourceStatusEventArgs содержит все данные, которые нам нужны для обработки исключения и его обработки: Exception а также Command свойства.

Это предупредит об ошибке:

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

Как вы можете видеть в обзорном посте по жизненному циклу страницы ASP.NET, существуют определенные события для обработки привязки данных. Возможно, вы могли бы использовать эти ловушки жизненного цикла ( событие DataBinding или событие DataBound), чтобы предотвратить ошибку или даже лучше ее обработать.

Надеюсь, я помог!

Другие вопросы по тегам