• 业务逻辑>数据层>SqlDataSource>处理sql命令执行错误


    先看前台代码:

     1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Demo23.aspx.cs" Inherits="Demo23" %>
     2 
     3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     4 
     5 <html xmlns="http://www.w3.org/1999/xhtml">
     6 <head runat="server">
     7     <title>示范如何处理 SELECT 语句执行错误</title>
     8 </head>
     9 <body>
    10     <form id="form1" runat="server">
    11     <div>
    12         <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    13         <asp:GridView ID="GridView1"
    14             runat="server" DataSourceID="SqlDataSource1">
    15         </asp:GridView>
    16         <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    17             ConnectionString="<%$ ConnectionStrings:ChtNorthwind %>" 
    18             SelectCommand="SELECT * FROM [authors222]" 
    19             onselected="SqlDataSource1_Selected"></asp:SqlDataSource>
    20     </div>
    21     </form>
    22 </body>
    23 </html>
    24 

    其中,authors222是不存在的表。

    再看后台代码:

     1 using System;
     2 using System.Collections;
     3 using System.Configuration;
     4 using System.Data;
     5 using System.Linq;
     6 using System.Web;
     7 using System.Web.Security;
     8 using System.Web.UI;
     9 using System.Web.UI.HtmlControls;
    10 using System.Web.UI.WebControls;
    11 using System.Web.UI.WebControls.WebParts;
    12 using System.Xml.Linq;
    13 
    14 public partial class Demo23 : System.Web.UI.Page
    15 {
    16     protected void Page_Load(object sender, EventArgs e)
    17     {
    18 
    19     }
    20     protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
    21     {
    22         if (e.Exception != null)
    23         {
    24             Label1.Text = e.Exception.Message;
    25 
    26             e.ExceptionHandled = true//这个表示异常已由开发人员自行处理
    27         }
    28     }
    29 }
    30 
    注意,e.ExceptionHandled = false;的话,或者不设置,异常不会赋值给Label1,而会跟平常的错误一样。

    合乎自然而生生不息。。。
  • 相关阅读:
    模块和包——Python
    异常——Python
    单例——Python
    类属性和类方法——Python
    继承和多态——Python
    私有属性和私有方法——Python
    面向对象封装案例——Python
    面相对象基础语法——Python
    类、接口作为成员变量类型——Java
    内部类的概念和分类——Java
  • 原文地址:https://www.cnblogs.com/samwu/p/1787375.html
Copyright © 2020-2023  润新知