أهم أقسام المدونة

الصفحات

الخميس، 29 ديسمبر 2016

فئة خطأ سيكويل SqlError Class


 فئة خطأ سيكويل SqlError Class 

عند حدوث خطأ أثناء الاتصال بسيكويل سيرفر، ينطلق الحدث InfoMessage الخاص بفئة اتصال سيكيول SqlConnection Class، حيث يمتلك المعامل الثاني e لهذا الحدث خاصية اسمها Errors تعيد مجموعة Collection عناصرها من نوع الفئة SqlError، حيث يحمل كل عنصر تفاصيل رسالة خطأ (أو تحذير) قادم من سيكويل سيرفر.. ولكي تستخدم هذه الفئة، يجب أولا أن تضيف معالجا للحدث InfoMessage كالتالي:
Dim Cn As New SqlConnection(My.Settings.BooksConStr)
AddHandler Cn.InfoMessage, AddressOf dbErrors

الآن يمكنك استخدام الفئة SqlError داخل المعالج dbErrors كالتالي:
Private Sub dbErrors(sender As Object, e As SqlInfoMessageEventArgs)
        For Each sqlErr As SqlError In e.Errors
            Console.WriteLine(sqlErr.Message)
        Next
End Sub

وتمتلك الفئة SqlError الخصائص التالية: 

* الرتبة Class:
تعيد رقما من 0 إلى 255 يمثل درجة خطورة الخطأ.. وقيمتها الافتراضية 0. 

* الخادم Server:
تعيد نصا يمثل اسم نسخة سيكويل سيرفر التي أرسلت الخطأ. 

* المصدر Source:
تعيد اسم المزود Provider الذي تسبب في الخطأ. 

* الإجراء Procedure:
تعيد اسم الإجراء المخزن الذي تسبب في الخطأ. 

* رقم السطر LineNumber:
تعيد رقم السطر الذي تسبب في الخطأ في الإجراء المخزن. 

* الرسالة Message:
تعيد نصا يصف رسالة الخطأ.. .. ويمكنك أيضا استخدام الوسيلة ToString الخاصة بهذا الكائن لعرض نص هذه الرسالة. 

* الرقم Number:
تعيد رقم الخطأ. 

* الحالة State:
تعيد رقما من 0 إلى 255 يمثل الكود الرقمي للخطأ.
 

ملحوظة:
يمكنك الحصول عن تفاصيل الخطأ بطريقة أخرى، باستخدام فئة استثناء سيكويل SqlException التي ترث خصائصها ووسائلها من الفئة الأم SystemException والفئة الأم Exception، وتمتلك أيضا نفس خصائص الفئة SqlError.. وهذا يمنحك القدرة على الحصول على نفس المعلومات، سواء استخدمت الحدث InfoMessage أم استخدمت الطريقة التقليدية لمعالجة الأخطاء Exception Handling.. مثال:
Try
       Dim Cn As New SqlConnection(My.Settings.BooksConStr)
Catch ex As SqlException
       MsgBox(ex.Server)
End Try

 
من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

ليست هناك تعليقات:

إرسال تعليق

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.