سؤال

في Global.asax، هل هناك طريقة للتعامل مع مهلات SQL بشكل أنيق وعرض رسالة على الصفحة المطلوبة توضح الخطأ؟أعلم أن Global.asax يحتوي على حدثي Application_Error وError، لكنني لست متأكدًا من أي حدث (إن وجد) يمكنني استخدامه لإنجاز هذا.

هل يمكنني الوصول إلى مثيل الصفحة الذي أدى إلى ظهور الخطأ الذي يعالجه Global.asax؟

شكرًا!

هل كانت مفيدة؟

المحلول

في global.asax.vb

Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)

        If TypeOf (Context.Error.GetBaseException) Is System.Data.SqlClient.SqlException Then

            Dim ex As System.Data.SqlClient.SqlException = Context.Error.GetBaseException

            If (ex.Errors.Count = 1 And ex.Number = -2) Then

                Server.ClearError()

                Response.Redirect(Context.Request.Url.ToString() & "?error=MessageHere")

            End If


        End If

End Sub

في C #

public void Application_Error(object sender, EventArgs e)
{
    if ((Context.Error.GetBaseException) is System.Data.SqlClient.SqlException) {
        
        System.Data.SqlClient.SqlException ex = Context.Error.GetBaseException;
        
        if ((ex.Errors.Count == 1 & ex.Number == -2)) {
            
            Server.ClearError();
                
            Response.Redirect(Context.Request.Url.ToString() + "?error=MessageHere");
            
        }
    }
}

نصائح أخرى

يمكنك استخدام أخطاء web.config المخصصة كما هو موضح هنا

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top