تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك
#4
حاول تجربة الآتي :
أولا : قم بتسمية داتا قريد فيو (الثانية) 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
الرد }}}
تم الشكر بواسطة: Zuhare , Taha Okla


الردود في هذا الموضوع
RE: مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك - بواسطة أبو خالد الشكري - 03-07-25, 08:42 PM


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


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