03-07-25, 08:42 PM
(آخر تعديل لهذه المشاركة : 04-07-25, 11:16 PM {2} بواسطة أبو خالد الشكري.)
حاول تجربة الآتي :
أولا : قم بتسمية داتا قريد فيو (الثانية) DGViewEdit
ثانيا : قم بتعديل خصائصها كالتالي حتى يكون الصف المحدد قابلا للتعديل :
يمكنك وضع هذا الكود في Form1_Load
ثالثا : قم بإضافة زر جديد لنقل محتوى الصف المحدد في داتا قريد فيو (الأولى) إلى داتا قريد فيو (الثانية) ، وقم بتسمية الزر btnEdit
ضع هذا الكود لزر النقل btnEdit :
أخيرا أضف زر جديد لحفظ التعديل الذي قمت به في الصف المحدد ، وقم بتسمية زر الحفظ btnSaveChanges
ضع الكود التالي لزر الحفظ :
أولا : قم بتسمية داتا قريد فيو (الثانية) DGViewEdit
ثانيا : قم بتعديل خصائصها كالتالي حتى يكون الصف المحدد قابلا للتعديل :
يمكنك وضع هذا الكود في Form1_Load
كود :
DGViewEdit.ReadOnly = False
DGViewEdit.SelectionMode = DataGridViewSelectionMode.CellSelectثالثا : قم بإضافة زر جديد لنقل محتوى الصف المحدد في داتا قريد فيو (الأولى) إلى داتا قريد فيو (الثانية) ، وقم بتسمية الزر btnEdit
ضع هذا الكود لزر النقل btnEdit :
كود :
Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click
If DGView.SelectedRows.Count = 0 Then
MessageBox.Show("الرجاء تحديد أحد الصفوف من الجدول.")
Exit Sub
End If
If DGViewEdit.Columns.Count = 0 Then
For Each col As DataGridViewColumn In DGView.Columns
DGViewEdit.Columns.Add(DirectCast(col.Clone(), DataGridViewColumn))
Next
End If
Dim row As DataGridViewRow = DGView.SelectedRows(0)
Dim rowData As New List(Of Object)
For Each cell As DataGridViewCell In row.Cells
rowData.Add(cell.Value)
Next
DGViewEdit.Rows.Add(rowData.ToArray())
End Subأخيرا أضف زر جديد لحفظ التعديل الذي قمت به في الصف المحدد ، وقم بتسمية زر الحفظ btnSaveChanges
ضع الكود التالي لزر الحفظ :
كود :
Private Sub btnSaveChanges_Click(sender As Object, e As EventArgs) Handles btnSaveChanges.Click
If DGViewEdit.Rows.Count = 0 Then
MessageBox.Show("لا توجد بيانات لحفظها")
Exit Sub
End If
Dim cmd As New OleDbCommand
cmd.Connection = Con
Con.Open()
For Each row As DataGridViewRow In DGViewEdit.Rows
If row.IsNewRow Then Continue For
Dim id As Integer = Convert.ToInt32(row.Cells(0).Value)
Dim name As String = row.Cells(1).Value.ToString()
Dim otherValue As String = row.Cells(2).Value.ToString()
cmd.CommandText = "UPDATE EMP SET Nem=@Nem, SomeField=@Val WHERE ID=@ID"
cmd.Parameters.Clear()
cmd.Parameters.AddWithValue("@Nem", name)
cmd.Parameters.AddWithValue("@Val", otherValue)
cmd.Parameters.AddWithValue("@ID", id)
cmd.ExecuteNonQuery()
Next
If Con.State = ConnectionState.Open Then Con.Close()
MessageBox.Show("تم حفظ التعديلات بنجاح")
End Sub

