خطا اثناء عملية الحذف - محمد اسماعيل - 30-10-18
السلام عليكم
استخدم الكود التالي لحذف صف محدد من قاعدة البيانات والكود يعمل جيدا
عملية الحذف تتطلب الوقوف وتحديد الصف المراد حذفة
وتتم العملية ايضا بصورة جيدا ويتم الحذف
المشكلة في حالة الضغط علي زر الحذف بدون تحديد اي صف يظهر خطا مع اني قمت بوضع شرط انة في حالة عدم تحديد اي صف يظهر رسالة بوجوب تحديد الصف ولكن الكود يتخطي الشرط وقمت بصياغة طريقة الشرط باكثر من طريقة وا شيء
الكود
كود :
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
RE: خطا اثناء عملية الحذف - Rabeea Qbaha - 30-10-18
كود :
If DATAG_CLIENONLIN.SelectedRows.Count > 0 Then
MsgBox("الرجاء اختيار الصف المراد حذفة")
Return
End If
RE: خطا اثناء عملية الحذف - محمد اسماعيل - 30-10-18
(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
RE: خطا اثناء عملية الحذف - Rabeea Qbaha - 31-10-18
(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 و النتيجة المعطاه
RE: خطا اثناء عملية الحذف - elgokr - 31-10-18
فقط استخدم الكود بهذا الشكل
كود :
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(1, indx).Value.ToString()
وبطبيعة الحال القيم هنا غير معرفة لانه لم يتم تحديد اى شئ
لذلك تم ادخل كل من هذه الاسطر داخل شرط التحقق فى حالة التحقق انه تم التحديد يقوم بعد ذلك
تنفيذ الاكواد وبكده تكون تجنبت المشكلة التى تظهر
تحياتى لك
وتمنياتى لك التوفيق
RE: خطا اثناء عملية الحذف - محمد اسماعيل - 31-10-18
(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(1, indx).Value.ToString()
وبطبيعة الحال القيم هنا غير معرفة لانه لم يتم تحديد اى شئ
لذلك تم ادخل كل من هذه الاسطر داخل شرط التحقق فى حالة التحقق انه تم التحديد يقوم بعد ذلك
تنفيذ الاكواد وبكده تكون تجنبت المشكلة التى تظهر
تحياتى لك
وتمنياتى لك التوفيق
ماقلتة اكثر من رائع
اسال الله ان يجعلة في ميزان حسناتك
RE: خطا اثناء عملية الحذف - elgokr - 31-10-18
(31-10-18, 07:14 AM)محمد اسماعيل كتب : ماقلتة اكثر من رائع
اسال الله ان يجعلة في ميزان حسناتك
اللهم امين ولنا جميعاً باذن الله
تحياتى لك
وتمنياتى لك التوفيق
|