高手講述ADO.NET連接事件
在ADO.NET有一個概念就是事件,所謂的事件就是發(fā)生的一次動作,文章這里就ADO.NET連接事件和大家深入細則的談談。所有 .NET Framework 數(shù)據(jù)提供程序中的 Connection 對象有兩個事件,可用于從數(shù)據(jù)源中檢索信息性消息或確定 Connection 的狀態(tài)是否已被更改。 下表描述 Connection 對象的這些事件。
InfoMessage ADO.NET連接事件接收 SqlInfoMessageEventArgs 對象,該對象在其 Errors 屬性中包含來自數(shù)據(jù)源的消息的集合。 您可以查詢此集合中的 Error 對象,以獲取錯誤編號和消息文本以及錯誤的來源。 SQL Server .NET Framework 數(shù)據(jù)提供程序還包含有關消息所來自的數(shù)據(jù)庫、存儲過程和行號的詳細信息。
示例
以下代碼示例顯示如何為 InfoMessage 事件添加事件處理程序。
Visual Basic
- ' Assumes that connection represents a SqlConnection object.
- AddHandler connection.InfoMessage, _
- New SqlInfoMessageEventHandler(AddressOf OnInfoMessage)
- Private Shared Sub OnInfoMessage(sender As Object, _
- args As SqlInfoMessageEventArgs)
- Dim err As SqlError
- For Each err In args.Errors
- Console.WriteLine("The {0} has received a severity {1}, _
- state {2} error number {3}\n" & _
- "on line {4} of procedure {5} on server {6}:\n{7}", _
- err.Source, err.Class, err.State, err.Number, err.LineNumber, _
- err.Procedure, err.Server, err.Message)
- Next
- End Sub
C#
- // Assumes that connection represents a SqlConnection object.
- connection.InfoMessage +=
- new SqlInfoMessageEventHandler(OnInfoMessage);
- protected static void OnInfoMessage(
- object sender, SqlInfoMessageEventArgs args)
- {
- foreach (SqlError err in args.Errors)
- {
- Console.WriteLine(
- "The {0} has received a severity {1}, state {2} error number {3}\n" +
- "on line {4} of procedure {5} on server {6}:\n{7}",
- err.Source, err.Class, err.State, err.Number, err.LineNumber,
- err.Procedure, err.Server, err.Message);
- }