تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] خطا اثناء عملية الحذف
#1
السلام عليكم

استخدم الكود التالي لحذف صف محدد من قاعدة البيانات والكود يعمل جيدا
 عملية الحذف تتطلب الوقوف وتحديد الصف المراد حذفة
وتتم العملية ايضا بصورة جيدا ويتم الحذف

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

الكود

كود :
Private Sub BT_DELETE_Click(sender As System.Object, e As System.EventArgs) Handles BT_DELETE.Click
     


       Try
           Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
           Dim result As Integer = MessageBox.Show(" هل تريد حذف العميل رقم" & vbNewLine & DATAG_CLIENONLIN(1, indx).Value.ToString(), "حذف", MessageBoxButtons.YesNo)

           If (DATAG_CLIENONLIN.SelectedRows.Count > 0) Then
               If result = DialogResult.Yes Then

                   Dim com As New OleDbCommand("UPDATE CUSTOMERDETAILS_TB SET CUSTOMERDETALIS_SHOW=@CUSTOMERDETALIS_SHOW  WHERE CUSTOMERDETALIS_ID = @CUSTOMERDETALIS_ID", con) ',CUSTOMERDETALIS_DATE=@CUSTOMERDETALIS_DATE
                   Dim checkUPDAT As Boolean = False
                   con.Open()
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_SHOW", checkUPDAT)
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_ID", DATAG_CLIENONLIN(1, indx).Value.ToString())
                   com.ExecuteNonQuery()
                   conn()

                   MsgBox("delete succes")

                   con.Close()
               ElseIf result = DialogResult.No Then
                   Exit Sub
               End If
           Else
               MessageBox.Show("اختر عميل محدد", "خطا") : Exit Sub
           End If

       Catch ex As Exception
           MessageBox.Show(ex.Message)
       Finally
           con.Close()
       End Try
   End Sub
الرد }}}
تم الشكر بواسطة:
#2
كود :
       If DATAG_CLIENONLIN.SelectedRows.Count > 0 Then
           MsgBox("الرجاء اختيار الصف المراد حذفة")
           Return
       End If
الرد }}}
تم الشكر بواسطة:
#3
(30-10-18, 11:42 PM)Rabeea Qbaha كتب :
كود :
       If DATAG_CLIENONLIN.SelectedRows.Count > 0 Then
           MsgBox("الرجاء اختيار الصف المراد حذفة")
           Return
       End If

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

كود :
  If DATAG_CLIENONLIN.SelectedRows.Count < 0 Then
               MsgBox("الرجاء اختيار الصف المراد حذفة")
               Return

           End If
الحل الوحيد بطريقة تخطي الخطا عشان يظهر عدة اختيار اي صف بالكود التالي


كود :
On Error Resume Next
       Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
       If (DATAG_CLIENONLIN.CurrentRow.Index < 0) Then
           MessageBox.Show("اختر عميل بالضغط علي اسمة", "خطأ") : Exit Sub
       End If

وانا عايز اعرف في فين المشكلة وانا لا احب استخدام الجملة

كود :
On Error Resume Next
الرد }}}
تم الشكر بواسطة:
#4
(30-10-18, 11:54 PM)محمد اسماعيل كتب :
(30-10-18, 11:42 PM)Rabeea Qbaha كتب :
كود :
       If DATAG_CLIENONLIN.SelectedRows.Count > 0 Then
           MsgBox("الرجاء اختيار الصف المراد حذفة")
           Return
       End If

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

كود :
  If DATAG_CLIENONLIN.SelectedRows.Count < 0 Then
               MsgBox("الرجاء اختيار الصف المراد حذفة")
               Return

           End If
الحل الوحيد بطريقة تخطي الخطا عشان يظهر عدة اختيار اي صف بالكود التالي


كود :
On Error Resume Next
       Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
       If (DATAG_CLIENONLIN.CurrentRow.Index < 0) Then
           MessageBox.Show("اختر عميل بالضغط علي اسمة", "خطأ") : Exit Sub
       End If

وانا عايز اعرف في فين المشكلة وانا لا احب استخدام الجملة

كود :
On Error Resume Next

اضف msgbox بعد تعريف ال indix و تاكد من قيمة ال indix و النتيجة المعطاه
الرد }}}
#5
فقط استخدم الكود بهذا الشكل
كود :
   Private Sub BT_DELETE_Click(sender As System.Object, e As System.EventArgs) Handles BT_DELETE.Click
       Try
           If (DATAG_CLIENONLIN.SelectedRows.Count <= 0) Then
               MessageBox.Show("اختر عميل محدد", "خطا")
               Exit Sub
           Else
               Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
               Dim result As Integer = MessageBox.Show(" هل تريد حذف العميل رقم" & vbNewLine & DATAG_CLIENONLIN(1, indx).Value.ToString(), "حذف", MessageBoxButtons.YesNo)
               If result = DialogResult.Yes Then
                   Dim com As New OleDbCommand("UPDATE CUSTOMERDETAILS_TB SET CUSTOMERDETALIS_SHOW=@CUSTOMERDETALIS_SHOW  WHERE CUSTOMERDETALIS_ID = @CUSTOMERDETALIS_ID", con) ',CUSTOMERDETALIS_DATE=@CUSTOMERDETALIS_DATE
                   Dim checkUPDAT As Boolean = False
                   con.Open()
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_SHOW", checkUPDAT)
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_ID", DATAG_CLIENONLIN(1, indx).Value.ToString())
                   com.ExecuteNonQuery()
                   conn()
                   MsgBox("delete succes")
                   con.Close()
               ElseIf result = DialogResult.No Then
                   Exit Sub
               End If
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       Finally
           con.Close()
       End Try
   End Sub

ما الذى قد يسبب تلك الخطاء

السبب سيرجع بسبب كلاً من هذا الاسطر
كود :
               Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
               Dim result As Integer = MessageBox.Show(" هل تريد حذف العميل رقم" & vbNewLine & DATAG_CLIENONLIN(1, indx).Value.ToString(), "حذف", MessageBoxButtons.YesNo)

حيث انه تحتوى على 
PHP كود :
DATAG_CLIENONLIN.CurrentRow.Index
و
DATAG_CLIENONLIN
(1indx).Value.ToString() 

وبطبيعة الحال القيم هنا غير معرفة لانه لم يتم تحديد اى شئ
لذلك تم ادخل كل من هذه الاسطر داخل شرط التحقق فى حالة التحقق انه تم التحديد يقوم  بعد ذلك
تنفيذ الاكواد وبكده تكون تجنبت المشكلة التى تظهر

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
#6
(31-10-18, 05:01 AM)elgokr كتب : فقط استخدم الكود بهذا الشكل
كود :
   Private Sub BT_DELETE_Click(sender As System.Object, e As System.EventArgs) Handles BT_DELETE.Click
       Try
           If (DATAG_CLIENONLIN.SelectedRows.Count <= 0) Then
               MessageBox.Show("اختر عميل محدد", "خطا")
               Exit Sub
           Else
               Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
               Dim result As Integer = MessageBox.Show(" هل تريد حذف العميل رقم" & vbNewLine & DATAG_CLIENONLIN(1, indx).Value.ToString(), "حذف", MessageBoxButtons.YesNo)
               If result = DialogResult.Yes Then
                   Dim com As New OleDbCommand("UPDATE CUSTOMERDETAILS_TB SET CUSTOMERDETALIS_SHOW=@CUSTOMERDETALIS_SHOW  WHERE CUSTOMERDETALIS_ID = @CUSTOMERDETALIS_ID", con) ',CUSTOMERDETALIS_DATE=@CUSTOMERDETALIS_DATE
                   Dim checkUPDAT As Boolean = False
                   con.Open()
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_SHOW", checkUPDAT)
                   com.Parameters.AddWithValue("@CUSTOMERDETALIS_ID", DATAG_CLIENONLIN(1, indx).Value.ToString())
                   com.ExecuteNonQuery()
                   conn()
                   MsgBox("delete succes")
                   con.Close()
               ElseIf result = DialogResult.No Then
                   Exit Sub
               End If
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message)
       Finally
           con.Close()
       End Try
   End Sub

ما الذى قد يسبب تلك الخطاء

السبب سيرجع بسبب كلاً من هذا الاسطر
كود :
               Dim indx As Integer = DATAG_CLIENONLIN.CurrentRow.Index
               Dim result As Integer = MessageBox.Show(" هل تريد حذف العميل رقم" & vbNewLine & DATAG_CLIENONLIN(1, indx).Value.ToString(), "حذف", MessageBoxButtons.YesNo)

حيث انه تحتوى على 
PHP كود :
DATAG_CLIENONLIN.CurrentRow.Index
و
DATAG_CLIENONLIN
(1indx).Value.ToString() 

وبطبيعة الحال القيم هنا غير معرفة لانه لم يتم تحديد اى شئ
لذلك تم ادخل كل من هذه الاسطر داخل شرط التحقق فى حالة التحقق انه تم التحديد يقوم  بعد ذلك
تنفيذ الاكواد وبكده تكون تجنبت المشكلة التى تظهر

تحياتى لك
وتمنياتى لك التوفيق

ماقلتة اكثر من رائع
اسال الله ان يجعلة في ميزان حسناتك
الرد }}}
تم الشكر بواسطة: elgokr
#7
(31-10-18, 07:14 AM)محمد اسماعيل كتب : ماقلتة اكثر من رائع
اسال الله ان يجعلة في ميزان حسناتك

اللهم امين ولنا جميعاً باذن الله

تحياتى لك
وتمنياتى لك التوفيق
{ وَقُل رَّبِّ زِدْنِي عِلْمًا }
[ كن على يقين من اعمالنا نخطئ ومن اخطائنا نتعلم ولذلك لا شي مستحيل ]

ساهم دائماً فى    لكل من يقوم بالمساهمة
فى حل المشكلة او الاستفسار لديك فالجميع هنا يعمل 
على مساعدة الاخرين لوجه الله وان تحتسب له اجر عند الله


 شرح كيفية عمل قاعدة بيانات تعمل على اكثر من جهاز على الشبكة الداخلية
الرد }}}
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  سؤال عن عملية حذف سجل من قاعدة البيانات assuhimi 3 249 11-02-24, 08:43 PM
آخر رد: assuhimi
  مشكلة عدم اكتمال تنفيذ بسبب فصل الشبكة او التيار الكهربائي اثناء النتفيذ تناسيم 3 1,840 05-02-24, 10:04 PM
آخر رد: 01AHMED
  الحذف للسجل بشروط معينة محمد خيري 4 361 05-01-24, 04:46 AM
آخر رد: محمد خيري
Heart [C#.NET] حول بطئ عملية نقل البينات الكثيرة من أكسس إلى داتا غريد فيو بلال بلال 11 710 15-12-23, 07:47 AM
آخر رد: foad8920
  [VB.NET] ناتج عملية الطرح للأرقام الشعرية خطا عبدالله الصافي 3 362 27-09-23, 11:01 AM
آخر رد: قناص المدينة
  عملية حسابية خاصة محمد خيري 6 497 22-08-23, 09:09 AM
آخر رد: مصمم هاوي
  عندي مشكلة اثناء عرض البيانات الضخمة في قريد يسبب بطى اثناء عرضها RADOS 5 690 07-05-23, 12:29 AM
آخر رد: new_programer
  [VB.NET] اعادة الترقيم بعد الحذف aminesori 7 1,073 25-02-23, 01:31 PM
آخر رد: kebboud
  ماهى عملية الضرب داخل sql حماده ممدوح البحيرى 5 832 18-12-22, 01:00 PM
آخر رد: Taha Okla
  [VB.NET] بطئ تحديث كونترول اثناء استخدام linq الماجيك مسعد 9 1,094 23-10-22, 02:39 PM
آخر رد: الماجيك مسعد

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم