這裡的文章是我個人的備份。
如果要閱讀原文,請到我的主網站: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版

Protected Sub SqlDataSource1_Selected() 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#版
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.台灣 ........
留言列表