السلام عليكم اخي عبدالله
اشكرك على اهتمامك بعملك
كتبت لك الكود ولكن لم يخطر ببالي اننا في جملة التعديل قد نغير في الاسم وهذا امر وارد او ربما نغير الشارة
لذلك غيرت قليلا في الكود بحيث تظهر رسالة تخبرك بوجود سجل يحمل الشارة نفسها سواء السجل نفسه او غيره وتطلب الموافقة على المتابعة لبتم التعديل او الحفظ
او الخروج من الاجراء شيء أخر كنت قد نسيت وهو اني اضفت لايبل 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