当前位置:  开发笔记 > 编程语言 > 正文

如何使用SqlDataSource处理异常

如何解决《如何使用SqlDataSource处理异常》经验,为你挑选了1个好方法。

我有一个SqlDataSource,它向我的GridView提供数据.多数民众赞成我在我的表格上使用,因此我根本没有任何代码.但在某些地方我需要一个TRY CATCH块以防万一我的连接丢失了.我必须在哪里放置什么代码?

如果我收到错误,我希望我的lblMessage文本为"无连接".

编辑

我的Machine.aspx中的GridView


    
        
            
        
        
            
        
        
            
        
    

我的连接就在我的Machine.aspx中的Gridview下




我的Code.aspx.cs中的Code Behind文件中的代码

protected void Page_Load(object sender, EventArgs e)
{
    lblError.Text = "hello there";
    SqlDataSource1.Selected += new SqlDataSourceStatusEventHandler(SqlDataSource1_Selected);


}


protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{

  if (e.ExceptionHandled)
   {

       lblError.Text = "There is a problem";  

   }

}

还有一些准备好的时候,我在我的选定事件中放置一个BreakPoint,它甚至没有得到它?

为什么?



1> Paul Suart..:

SqlDataSource有一个Selected事件.像这样为此事件添加一个处理程序,并处理此处理程序中的任何错误(显示信息性消息等).

void GridView1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
    if (e.ExceptionHandled)
    {
        //Show error message
    }
}

抱歉,您将不得不在代码隐藏中使用一些代码!

编辑

查看您的代码,我认为您不会绑定GridView,因此您的SqlDataSource永远不会尝试从您的数据库中选择数据.

在Page_Load方法中,添加以下代码:

    if (!IsPostBack)
    {
        GridView1.DataBind();
    }

进一步编辑

尝试在SqlDataSource上将"onselected"更改为"OnSelected"并删除该行以在后面的代码中绑定您的事件处理程序.

如果这不起作用我很难过,因为你基本上得到了最简单的例子.

甚至进一步编辑

试试这个

void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
{
    if (e.Exception != null)
    {
        //Show error message
        lblError.Text = "There is a problem"; 

        //Set the exception handled property so it doesn't bubble-up
        e.ExceptionHandled = true;
    }
}

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有