تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشكلة بكود التعديل بسبب جملة فور
#15
السلام عليكم اخي عبدالله
اشكرك على  اهتمامك بعملك 
كتبت لك الكود ولكن لم يخطر ببالي اننا في جملة التعديل قد نغير في الاسم وهذا امر وارد او ربما نغير الشارة
لذلك غيرت قليلا في الكود بحيث تظهر رسالة تخبرك بوجود سجل يحمل الشارة نفسها سواء السجل نفسه او غيره وتطلب الموافقة على المتابعة لبتم التعديل او الحفظ
او الخروج  من الاجراء شيء أخر كنت قد نسيت وهو اني اضفت لايبل Lbl_id وكنت قد استخدمته في الكود كمربع نص  انتبهت لهذا الخطأ وخطأ صغير أخر متعلق بكود الحفظ مع باراميتر ال ID 
المهم استبدل هذه الاكواد فقط وسيعمل معك باذن الله
الفنكشن اصبح هكذا
كود :
Public Function DetectedValue(tble As String, colum As String, txtCompar As TextBox) As Boolean
       Dim detct As Boolean = False
       Dim dts As New DataTable()
       Try
           dts.Clear()
           da = New OleDbDataAdapter("select * From " & tble & " where " & colum & " = '" & txtCompar.Text.Trim & "'", Con)
           da.Fill(dts)
           If dts.Rows.Count > 0 Then
               detct = True
           Else
               detct = False
           End If
       Catch ex As Exception
           MessageBox.Show(ex.Message, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
       End Try
       Return detct
   End Function
صب الحفظ   
كود :
Public Sub insert_User(ByVal FName As String, ByVal Shara As String)
       ' عندما يكون الاي دي ترقيم تلقائي لاندخل الاي دي في كود الحفظ هو يتولد تلقائيا
       Dim cmd As New OleDbCommand("insert into tb1 ( FName,Shara) values( @FName,@Shara)", con)
       cmd.Parameters.Add("@FName", OleDbType.VarChar).Value = FName
       cmd.Parameters.Add("@Shara", OleDbType.VarChar).Value = Shara
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
   End Sub
كود بوتون الحفظ
كود :
Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.Click

       If txtName.Text = "" Then
           MsgBox("قم بإدخال الإسم لإتمام عملية الإضافة", MsgBoxStyle.Information, "تنبيه")
           Exit Sub
       End If

       If txtShara.Text = "" Then
           MsgBox("قم بكتابة رقم الشارة لإتمام عملية الإضافة", MsgBoxStyle.Information, "تنبيه")
           Exit Sub
       End If
       '---------------------------------
       ' التحقق من وجود سجل فيه نفس الشارة عبر الفنكشن التي ستبحث في الجدول وان وجدت ستعيد قيمة ترو
       Try
           If DetectedValue("tb1", "Shara", txtShara) = True Then ' التحقق من الحقل
               If (MessageBox.Show("يوجد سجل يحمل القيمة هل تريد المتابعة؟", "Alert", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
                   insert_User(txtName.Text, txtShara.Text)
                   FillDGV()

                   MsgBox("تمت عملية الإضافة بنجاح", MsgBoxStyle.Information, "الإضافة")
                   AllClear()
               Else
                   txtShara.Focus()
                   Exit Sub
               End If
           Else
               insert_User(txtName.Text, txtShara.Text)
               FillDGV()

               MsgBox("تمت عملية الإضافة بنجاح", MsgBoxStyle.Information, "الإضافة")
               AllClear()
           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try

   End Sub
صب التعديل
كود :
 Public Sub update_User(ByVal FName As String, ByVal Shara As String, ByVal id As Integer)
       Dim cmd As New OleDbCommand("update tb1 set FName=@FName,Shara=@Shara where id=@id", con)
       cmd.Parameters.Add("@FName", OleDbType.VarChar).Value = FName
       cmd.Parameters.Add("@Shara", OleDbType.VarChar).Value = Shara
       cmd.Parameters.Add("@id", OleDbType.Integer).Value = id
       con.Open()
       cmd.ExecuteNonQuery()
       con.Close()
   End Sub
بوتون التعديل
كود :
  Private Sub btnUpdate_Click(sender As Object, e As EventArgs) Handles btnUpdate.Click
       Try
           If DetectedValue("tb1", "Shara", txtShara) = True Then ' التحقق من الحقل
               If (MessageBox.Show("يوجد سجل يحمل القيمة هل تريد المتابعة؟", "Alert", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)) = Windows.Forms.DialogResult.Yes Then
                   update_User(txtName.Text, txtShara.Text, Lbl_Id.Text)
                   FillDGV()
                   MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.Information, "التعديل")
                   AllClear()
               Else
                   txtShara.Focus()
                   Exit Sub
               End If
           Else
               update_User(txtName.Text, txtShara.Text, Lbl_Id.Text)
               FillDGV()
               MsgBox("تمت عملية التعديل بنجاح", MsgBoxStyle.Information, "التعديل")
               AllClear()

           End If
       Catch ex As Exception
           MsgBox(ex.Message)
       End Try
   End Sub
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}}


الردود في هذا الموضوع
RE: مشكلة بكود التعديل بسبب جملة فور - بواسطة ابراهيم ايبو - 22-06-20, 01:09 AM


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


يقوم بقرائة الموضوع: