Как отловить исключение после события 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), чтобы предотвратить ошибку или даже лучше ее обработать.
Надеюсь, я помог!