منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مساعدة في كيفية ترحيل البيانات من داتا قريدفيو إلى داتا قريدفيو في فيجوال بيسك
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم أعضاء فجوال بيسك
أرجو منكم المساعدة في كيفية ترحيل البيانات من داتا قريدفيو متصلة بقاعدة بيانات  إلى داتا قريدفيو أخرى من أجل التعديل على بيانات هذه الأخيرة وحفظها  في فيجوال بيسك
وعليكم السلام
يفضل أن توضح للمتابعين الكود الذي تستخدمه في إظهار البيانات التي تظهر في الداتا قريد فيو المتصلة بقاعدة البيانات
شكرا على الرد

 من على الفورم
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
حاول تجربة الآتي :
أولا : قم بتسمية داتا قريد فيو (الثانية) 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
بارك الله فيك أخي أبو خالد الكود يعمل
لكنه يقوم بتكرار بمعني أن كل إسم يجب أن يرحل مرة واحدة فقط
وبارك الله فيك أخي
بالتوفيق إن شاء الله
هل يمكن منع تكرار ترحيل البيانات أخي أي أن كل إسم يرحل مرة واحدة فقط
ارسل صورة للتكرار الذي تتكلم عنه .
حتى يكون الموضوع واضحا .
وشكرا .
التكرار موجود لكنني لم أستطع وضع الصورة رغم المحاولة
السلام عليكم ورحمة الله وبركاته أعضاء المنتدى
إليك الأخ أبو خالد الصورة
الصفحات : 1 2