تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك
#11
مرحبا بك أخي ahmedfa71


تمام ، الآن صارت المشكلة واضحة تمامًا !
يمكن التعديل في الكود قليلا لمنع التكرار في ترحيل الصفوف المحددة .
حاليا بالكود الجديد يمكنك تحديد وترحيل أكثر من صف بالنقر على Ctrl + الصفوف المطلوب ترحيلها

أولا : قم بإضافة السطرين التاليين في Form1_Load

كود :
DGView.MultiSelect = True
DGView.SelectionMode = DataGridViewSelectionMode.FullRowSelect

ثانيا : قم بتعديل كود الترحيل إلى الآتي :

كود :
Private Sub btnEdit_Click(sender As Object, e As EventArgs) Handles btnEdit.Click

       If DGView.SelectedRows.Count = 0 Then
           MsgBox("الرجاء تحديد صف واحد أو أكثر", MessageBoxButtons.OK + MsgBoxStyle.DefaultButton1 + MessageBoxIcon.Exclamation + MsgBoxStyle.MsgBoxRight, "ترحيل البيانات")
           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

       For Each selectedRow As DataGridViewRow In DGView.SelectedRows
           If selectedRow.IsNewRow Then Continue For

           Dim selectedID As String = selectedRow.Cells(0).Value.ToString ' تأكد أن الخلية رقم صفر تخص كود الموظف

           Dim alreadyExists As Boolean = False
           For Each row As DataGridViewRow In DGViewEdit.Rows
               If Not row.IsNewRow AndAlso row.Cells(0).Value.ToString() = selectedID Then ' تأكد أن الخلية رقم صفر تخص كود الموظف
                   alreadyExists = True
                   Exit For
               End If
           Next

           If Not alreadyExists Then
               Dim rowData As New List(Of Object)
               For Each cell As DataGridViewCell In selectedRow.Cells
                   rowData.Add(cell.Value)
               Next
               DGViewEdit.Rows.Add(rowData.ToArray())
           End If
       Next

       MsgBox("تم ترحيل الصفوف المحددة بنجاح", MessageBoxButtons.OK + MsgBoxStyle.DefaultButton1 + MessageBoxIcon.Information + MsgBoxStyle.MsgBoxRight, "ترحيل الصفوف")

   End Sub

ثالثا : قم بتعديل كود حفظ التعديلات إلى الآتي :
كود :
   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 SqlCommand
       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 NameM As String = row.Cells(1).Value.ToString()
           Dim PrenomM As String = row.Cells(2).Value.ToString()
           Dim NomFM As String = row.Cells(3).Value.ToString()
           Dim PrenomFM As String = row.Cells(4).Value.ToString()

           cmd.CommandText = "UPDATE Mowadafeen SET Ism_AlMowadhef=@ism, Prenom=@prenom , NomF=@nomf , PrenomF=@prenomf WHERE Kode_AlMowadhef=@Kode_AlMowadhef"
           cmd.Parameters.Clear()

           cmd.Parameters.AddWithValue("@Kode_AlMowadhef", ID)
           cmd.Parameters.AddWithValue("@ism", NameM)
           cmd.Parameters.AddWithValue("@prenom", PrenomM)
           cmd.Parameters.AddWithValue("@nomf", NomFM)
           cmd.Parameters.AddWithValue("@prenomf", PrenomFM)

           cmd.ExecuteNonQuery()
       Next

       If Con.State = ConnectionState.Open Then Con.Close()

       MessageBox.Show("تم حفظ التعديلات بنجاح")

   End Sub
الرد }}}
تم الشكر بواسطة: Zuhare , Zuhare
#12
إذا واجهتك أي مشاكل في الأكواد أخبرني فورًا
الرد }}}
تم الشكر بواسطة: Zuhare , Zuhare , Zuhare
#13
الكود يعمل الأن
بارك الله فيك أخي أبوخالد
الرد }}}
تم الشكر بواسطة:
#14
الحمد لله أن الكود قد اشتغل
والله يوفقك أخي أحمذ .
الرد }}}
تم الشكر بواسطة:



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


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