這裡的文章是我個人的備份。
如果要閱讀原文,請到我的主網站:http://www.dotblogs.com.tw/mis2000lab/


本篇文章的原始出處(原文),位於:

ADO.NET #11 自己控制SqlDataSource的例外狀況

http://www.dotblogs.com.tw/mis2000lab/archive/2009/12/02/sqldatasource_exception_20091202.aspx

 

=====================================================

 

 

 

 

SqlDataSource執行SQL指令之後,可以在相關的事件裡面,抓取例外狀況。

傳統的例外狀況是這種畫面:

 

使用本方法後,會變成這樣:

 

=====================================================================

 

首先,畫面上就是簡單的  GridView + SqlDataSource而已,沒什麼。

 

我故意寫錯 SQL指令的 Select陳述句,誘發錯誤與例外狀況

 

因為我使用 Select陳述句,所以會對應 SqlDataSource的 Selected事件

如果您使用資料新增(Insert Into),則可以改用  SqlDataSource的 Inserted事件

以此類推......,可用在 Update與  Delete上面。

 

後置程式碼如下:

VB版

01     Protected Sub SqlDataSource1_Selected(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.SqlDataSourceStatusEventArgs) Handles SqlDataSource1.Selected
02         '== 執行 SqlDataSource的 .Select()方法之後,就會執行這一個事件 ==
03
04         e.ExceptionHandled = True  '--表示我們自己處理例外狀況(exception)!
05
06         If e.Exception IsNot Nothing Then
07             '-- 或是寫成 If e.Exception IsNot Nothing Then 也可以
08             Response.Write("發生例外狀況 ---- " & e.Exception.Message)
09         End If
10
11     End Sub

 

C#版

01     protected void SqlDataSource1_Selected(object sender, SqlDataSourceStatusEventArgs e)
02     {
03         //== 執行 SqlDataSource的 .Select()方法之後,就會執行這一個事件 ==
04
05         e.ExceptionHandled = true;  //--表示我們自己處理例外狀況(exception)!
06
07         if (e.Exception != null)  
08         {
09             Response.Write("發生例外狀況 ---- " + e.Exception.Message);
10         }

11
12     }

 

重點在於  e.ExceptionHandled這一行程式碼。

設定為 True,表示我們自己控制例外狀況的呈現,就會看見這樣的畫面。

 

如果不寫這一行,就是傳統的例外狀況警告訊息了。

 

 

 

 

 

 

 


 

 

......  寄信給我    mis2000lab (at) 雅虎.com.台灣 ................................................................................................................
ASP.NET專題實務  (文魁出版,VB版 P8187 / C#版P09027

.............................................................................................................. 寄信給我    mis2000lab (at) 雅虎.com.台灣 ........

arrow
arrow
    全站熱搜

    MIS2000 Lab 發表在 痞客邦 留言(0) 人氣()