تقييم الموضوع :
  • 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)محمد اسماعيل كتب : ماقلتة اكثر من رائع
اسال الله ان يجعلة في ميزان حسناتك

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

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

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


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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] جمع قيمة اثناء عملية تحديث البيانات محمد اسماعيل 0 32 أمس, 07:32 PM
آخر رد: محمد اسماعيل
  [VB.NET] اضافة سريال لكل عملية محمد اسماعيل 4 114 أمس, 07:14 PM
آخر رد: محمد اسماعيل
  [VB.NET] بعد عملية التطوير من فيرجن قديم الى جديد 0theghost0 1 52 10-12-18, 02:47 PM
آخر رد: elgokr
  [سؤال] طلب عملية حسابية motazsaad94@gmail.com 2 74 04-12-18, 11:30 PM
آخر رد: motazsaad94@gmail.com
  [VB.NET] كيف يتم التأثير على المخزون عند عملية البيع 739906433 1 62 03-12-18, 05:05 PM
آخر رد: حريف برمجة
  [VB.NET] بحاجة لمساعدة فى اتمام كود عملية حسابية وايضاً كود استعلام لاكثر من جدول السعيدي 14 409 01-12-18, 11:31 PM
آخر رد: السعيدي
  سؤال عملية حسابية محمد خيري 5 109 15-11-18, 04:26 PM
آخر رد: محمد خيري
  [VB.NET] اضافة سريال لكل عملية محمد اسماعيل 2 84 07-11-18, 08:00 PM
آخر رد: dasktop
  تحديد الصف بعد عملية التحديث محمد اسماعيل 3 137 31-10-18, 11:41 PM
آخر رد: elgokr
  خطا فى عملية الحفظ سمير جمال 0 87 20-10-18, 06:23 PM
آخر رد: سمير جمال

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


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