业务逻辑>数据层>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
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
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,而会跟平常的错误一样。
合乎自然而生生不息。。。