我有下一个代码:
protected void Page_Load(object sender, EventArgs e)
{
// some code-------------------
sourceDetails.SelectCommand += "<new condition>";
this.DataBind();
}
sourceDetails
是.aspx页面中的SqlDataSource
对象,它对数据库有查询。
"<new condition>"
- 条件发生变化。
如果条件不正确,我的页面会出错。我希望在它出现之前捕获错误。
答案 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 event或DataBound 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
包含阻止异常和处理异常所需的所有数据:Exception
和Command
属性。