تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك
#1
السلام عليكم أعضاء فجوال بيسك
أرجو منكم المساعدة في كيفية ترحيل البيانات من داتا قريدفيو متصلة بقاعدة بيانات  إلى داتا قريدفيو أخرى من أجل التعديل على بيانات هذه الأخيرة وحفظها  في فيجوال بيسك
الرد }}}
تم الشكر بواسطة:
#2
وعليكم السلام
يفضل أن توضح للمتابعين الكود الذي تستخدمه في إظهار البيانات التي تظهر في الداتا قريد فيو المتصلة بقاعدة البيانات
الرد }}}
تم الشكر بواسطة:
#3
شكرا على الرد

 من على الفورم
Sub
LoadDGView()
        winclass.filldataset("SELECT * FROM EMP ORDER BY Nem ASC")
        With DGView
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .EnableHeadersVisualStyles = False
            .RowHeadersWidth = 20
            .AlternatingRowsDefaultCellStyle.BackColor = Color.Honeydew
            .DefaultCellStyle.SelectionBackColor = Color.YellowGreen
            .Columns(7).HeaderCell.Style.BackColor = Color.GreenYellow
            .Columns(0).Width = 20
            .Columns(1).Width = 60
            .Columns(5).Width = 68
            .Columns(6).Width = 68
            .ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        End With
    End Sub
 
على الكلاس
Sub filldataset(sql As String)
        ds = New DataSet
        da = New OleDbDataAdapter(sql, con)
        da.Fill(ds, 0)
        dv = New DataView(ds.Tables(0))
    End Sub
الرد }}}
تم الشكر بواسطة:
#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
#5
بارك الله فيك أخي أبو خالد الكود يعمل
لكنه يقوم بتكرار بمعني أن كل إسم يجب أن يرحل مرة واحدة فقط
وبارك الله فيك أخي
الرد }}}
تم الشكر بواسطة: أبو خالد الشكري
#6
بالتوفيق إن شاء الله
الرد }}}
تم الشكر بواسطة:
#7
هل يمكن منع تكرار ترحيل البيانات أخي أي أن كل إسم يرحل مرة واحدة فقط
الرد }}}
تم الشكر بواسطة:
#8
ارسل صورة للتكرار الذي تتكلم عنه .
حتى يكون الموضوع واضحا .
وشكرا .
الرد }}}
تم الشكر بواسطة:
#9
التكرار موجود لكنني لم أستطع وضع الصورة رغم المحاولة
الرد }}}
تم الشكر بواسطة:
#10
السلام عليكم ورحمة الله وبركاته أعضاء المنتدى
إليك الأخ أبو خالد الصورة
الرد }}}
تم الشكر بواسطة:



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


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