الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

إضافة قيد في الحدث updateing in gridview

بدأه ورق خسرانه في 26 يوليو 2012 · 7 رد · 886 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

اخواني الاعضاء .. انا لدي gridview وعندي حقل الايميل يونيك لايسمح بالتكرار

وانا مستخدم التعديل بالمعالج عن طريق الغريد فيو ولكن عندما اقوم بالعملية التعديل وكتابة ايميل موجود سابقاُ يطلع لي هذه الخطاء

Violation of UNIQUE KEY constraint 'IX_T'. Cannot insert duplicate key in object 'dbo.T'.

The statement has been terminated.

وانا اريد ان لايظهر لي هذه الخطاء اريد ان تطلع رسالة للمستخدم انه يوجد ايميل سابق بنفس هذه الايميل

طبعاُ انا لا استخدم استعلام بمعرفة هل يوجد ايميل بنفس الايميل المعدل في الدتا بيز .. لكن استخدم تري كاتش وعندي رقم الخطا واقوم بكتابة بهذه الشكل

try

 Catch ex As Exception
            inform = ex.Message.GetHashCode.ToString

            If inform = 1347159121 Then
                lblMsg.Text = "This Car is exist in other tables ! "
                Exit Sub
            End If
        End Try

لكن لاعمل اين اضع هذه الكود جربت اضعه في حدث

GridView2_RowUpdating

جربت في اغلب الاحداث لكن بدون فائدة ياليت الي عندة خبرة يقولي اين اضع الكود ؟؟ ولكم جزيل الشكر ..

#2

هل جربت تضع الكود فى حدث Click الخاص بزر Update فى gridview

protected void LinkButton1_Click(object sender, EventArgs e)
    {

    }
1
#3

اخي جربت اضعه في الحدث هذه .. لكن من غير فائدة .. ولك جزيل الشكر والتقدير

#4

ما فهمته انك لا تستخدم Data Source مع ال GridView لتحديث البيانات و انك تقوم بكتابة كود الاضافة. أفضل ان تقوم بالتاكد من عدم تكرار الايميل قبل حفظ البيانات

يعني قم أولا باستعلام قاعدة البيانات اذا كان الايميل موجود و اذا لم يكن موجود اضف البيانات و إلا فتظهر رسالة للمستخدم

و يمكنك وضع الخطوتين في استعلام واحد اذا كنت تستخدم Stored Procedure

1
#5
AhmedElbaz كتب:

ما فهمته انك لا تستخدم Data Source مع ال GridView لتحديث البيانات و انك تقوم بكتابة كود الاضافة. أفضل ان تقوم بالتاكد من عدم تكرار الايميل قبل حفظ البيانات

يعني قم أولا باستعلام قاعدة البيانات اذا كان الايميل موجود و اذا لم يكن موجود اضف البيانات و إلا فتظهر رسالة للمستخدم

و يمكنك وضع الخطوتين في استعلام واحد اذا كنت تستخدم Stored Procedure

اخي العزيز .. انا استخدم Data Source لكن لم استخدم علية الاضافة عن طريق gridview ولكن ااستعمل التعديل الخاص بالغرد فيو .. ولكن سوف تحدث مشكلة ااذا قام احد المستخدمين ..

بتعديل ايميلة وكتب ايميل موجود مسبقاُ لان الحقل يمنع التكرار وعندي شرط .. يقوم بالتحقق في حالة انه تكرر االايميل .. عن طريق تراي كتش وعندي رقم الخطاء في حالة ان الايميل تكرر ولكن لاعمل اين اضع جملة التري كاتش ..

وهذو هو كود تري كتش

try

 Catch ex As Exception
            inform = ex.Message.GetHashCode.ToString

            If inform = 1347159121 Then
                lblMsg.Text = "This email is exist in other tables ! "
                Exit Sub
            End If
        End Try

وعمل تري كتاش في حالة انه وقع اي استثناء رقمة نفس الرقم تظهر رسالة لمستخدم من اجل تلافي ظهور هذه الخطاء في الصفحة للمستخدم

Violation of UNIQUE KEY constraint 'IX_T'. Cannot insert duplicate key in object 'dbo.T'

The statement has been terminated

ارجو ان تكون وصلت المعلومة .. اخي المشرف ولك جزيل الشكر

#6

السلام عليكم .

اين الناس ؟ مافي ردود ياليت تشوفو لي حل للمشكلة هاذي ولكم جزيل الشكر

#7

الامر ان شاء الله سهل جدا

اتبع التعليمات التالية

1- اخر الجردفيو او الديتيلز فيو او اي كتنترول تعلم فيه تحديث

2- اذهب الي خصائص

3- اخر Events

4- اخر الحدث RowUpdated

5- ثم اكتب الكود التالي

 Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs) Handles GridView1.RowUpdated
        If e.Exception Is Nothing Then
            Response.Write("نجح في التحديث")
        Else
            e.ExceptionHandled = True
            e.KeepInEditMode = True
            Response.Write("حدث حظا البريد موجود مسبقا")
        End If
    End Sub

تم تعديل هذه المشاركة بواسطة islamicnfo_a في 30 يوليو 2012 في 11:54

1
arab-code-logo.png

---------------------------

ليست المشكلة أن تخطــىء ، حتى لوكان خطئك جسيما

وليست الميزة أن تعترف بالخطـــأ وتتقبل النصح .. إنمـا

العمل الجبــار الذي ينتظرك حقا هو أن لا تعـــــــــــــود

للخطـــــــأ أبــدا ……

#8
islamicnfo_a كتب:

الامر ان شاء الله سهل جدا

اتبع التعليمات التالية

1- اخر الجردفيو او الديتيلز فيو او اي كتنترول تعلم فيه تحديث

2- اذهب الي خصائص

3- اخر Events

4- اخر الحدث RowUpdated

5- ثم اكتب الكود التالي

 Protected Sub GridView1_RowUpdated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdatedEventArgs) Handles GridView1.RowUpdated
        If e.Exception Is Nothing Then
            Response.Write("نجح في التحديث")
        Else
            e.ExceptionHandled = True
            e.KeepInEditMode = True
            Response.Write("حدث حظا البريد موجود مسبقا")
        End If
    End Sub

مشششششششكور اخي العزيز جاري التجربة الله يجزيك الف خير ماقصرت والله

مواضيع مشابهة