none
copiar datos de un datagridview a un dataset RRS feed

  • Pregunta

  • hola, tengo el el siguiente problema, tengo un datagrid el cual le agrego los datos de diferentes tablas, lo quiero es que el contenido del datagrid se guarde en un dataset, como le hago, aqui les dejo mi codigo con el cual agrego los datos al datagridview.

    Code Snippet

     

    Public conexion As New ADODB.Connection
    Public acuerdo As New ADODB.Recordset
    Public riesgo As New ADODB.Recordset
    Public avance As New ADODB.Recordset

    conexion.ConnectionString = "provider = Microsoft.jet.oledb.4.0;Data source=c:\acsipa\acsipa.mdb"

    acuerdo.Open("select * from acuerdo", conexion, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
    avance.Open("select * from avance", conexion, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
    riesgo.open("select * from riesgo", conexion, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)


     avance.MoveFirst()
                While (x = 0)
                    If avance.EOF = False Then
                        If clv_centro = avance.Fields("clv_centro").Value And avance.Fields("ban").Value = 1 And avance.Fields("avance").Value < 100 Then
                            clv_acuer = avance.Fields("clv_acuerdo").Value
                            y = 0
                            riesgo.MoveFirst()
                            While y = 0
                                If riesgo.EOF = False Then
                                    If clv_acuer = riesgo.Fields("clv_acuerdo").Value Then
                                        x1 = 0
                                        acuerdo.MoveFirst()
                                        While (x1 = 0)
                                            If acuerdo.EOF = False Then
                                                If clv_acuer = acuerdo.Fields("clv_acuerdo").Value Then
                                                    fecha = acuerdo.Fields("fecha_com").Value
                                                    _DataGridView1.Rows.Add((avance.Fields("num_acta").Value), avance.Fields("clv_acuerdo").Value, riesgo.Fields("riesgo").Value, _
                                                     riesgo.Fields("clase").Value, fecha.ToShortDateString, avance.Fields("avance").Value, Date.Today.ToShortDateString)
                                                    acuerdo.MoveNext()
                                                Else
                                                    acuerdo.MoveNext()
                                                End If
                                            Else
                                                x1 = 1
                                            End If
                                        End While
                                        riesgo.MoveNext()
                                    Else
                                        riesgo.MoveNext()
                                    End If
                                Else
                                    y = 1
                                End If
                            End While
                            avance.MoveNext()
                        Else
                            avance.MoveNext()
                        End If
                    Else
                        x = 1
                    End If
                End While
            End If

     

     

    lunes, 30 de abril de 2007 17:45

Respuestas

  • Lo mejor sería que modifiques un poco tu código para que la iteracion inserte registros en una tabla de un dataset (en lugar de hacerlo directamente en el datagridview)

     

    y luego enlazas los datos de la tabla con el datagridview con esta instruccion:

     

    Code Snippet

    _DataGridView1.DataSource = myDataTable

     

    Saludos,

    Jose

    miércoles, 2 de mayo de 2007 10:49

Todas las respuestas

  • Lo mejor sería que modifiques un poco tu código para que la iteracion inserte registros en una tabla de un dataset (en lugar de hacerlo directamente en el datagridview)

     

    y luego enlazas los datos de la tabla con el datagridview con esta instruccion:

     

    Code Snippet

    _DataGridView1.DataSource = myDataTable

     

    Saludos,

    Jose

    miércoles, 2 de mayo de 2007 10:49
  • hize lo que me recomendaste pero me marca un error creo q hize algo mal mira aqui esta mi codigo

     

    Code Snippet

    Public Class Form1
        Public conexion As New ADODB.Connection
        Public acuerdo As New ADODB.Recordset
        Public avance As New ADODB.Recordset
        Public riesgo As New ADODB.Recordset
        Dim x, x1, clv_centro, y, ban As New Integer
        Dim clv_acuer As String
        Dim fecha As Date
        Dim tabladatos As New DataTable
        Dim filanueva As DataRow

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conexion.ConnectionString = "provider = Microsoft.jet.oledb.4.0;Data source=c:\acsipa\acsipa.mdb"
            conexion.Open()
            acuerdo.Open("select * from acuerdo", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            avance.Open("select * from avance", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            riesgo.Open("select * from riesgo", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            clv_centro = 16
            
         End Sub

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

            x = 0
            avance.MoveFirst()
            While (x = 0)
                If avance.EOF = False Then
                    If clv_centro = avance.Fields("clv_centro").Value And avance.Fields("ban").Value = 1 And _
                       avance.Fields("avance").Value < 100 Then
                        clv_acuer = avance.Fields("clv_acuerdo").Value
                        y = 0
                        riesgo.MoveFirst()
                        While y = 0
                            If riesgo.EOF = False Then
                                If clv_acuer = riesgo.Fields("clv_acuerdo").Value Then
                                    x1 = 0
                                    acuerdo.MoveFirst()
                                    While (x1 = 0)
                                        If acuerdo.EOF = False Then
                                            If clv_acuer = acuerdo.Fields("clv_acuerdo").Value Then
                                                fecha = acuerdo.Fields("fecha_com").Value

                                               filanueva = Me.DataSet1.Tables("tabladatos").NewRow()
                                                filanueva("num acta") = avance.Fields("num_acta").Value
                                                filanueva("clv acuerdo") = avance.Fields("clv_acuerdo").Value
                                                filanueva("riesgo") = riesgo.Fields("riesgo").Value
                                                filanueva("clase") = riesgo.Fields("clase").Value
                                                filanueva("fecha") = fecha.ToShortDateString
                                                filanueva("avance") = avance.Fields("avance").Value
                                                filanueva("fecha") = Date.Today.ToShortDateString
                                                Me.DataSet1.Tables("tabladatos").Rows.Add(filanueva)
                                                acuerdo.MoveNext()
                                            Else
                                                acuerdo.MoveNext()
                                            End If
                                        Else
                                            x1 = 1
                                        End If
                                    End While
                                    riesgo.MoveNext()
                                Else
                                    riesgo.MoveNext()
                                End If
                            Else
                                y = 1
                            End If
                        End While
                        avance.MoveNext()
                    Else
                        avance.MoveNext()
                    End If
                Else
                    x = 1
                End If
            End While
            Me.DataGridView1.DataSource = tabladatos
        End Sub
    End Class

     

     

    miércoles, 2 de mayo de 2007 15:46
  • soy yo de nuevo jejeje, mira logre guardar los datos en un tadatable, pero mi duda es la siguiente, como le hago para vincular esa tabla en un dataset por q no cree un dataset, mira te dejo mi codigo.

     

     

    Code Snippet

    Public Class Form1
        Public conexion As New ADODB.Connection
        Public acuerdo As New ADODB.Recordset
        Public avance As New ADODB.Recordset
        Public riesgo As New ADODB.Recordset
        Dim x, x1, clv_centro, y, ban As New Integer
        Dim clv_acuer As String
        Dim fecha As Date
        Dim tabladatos As DataTable = New DataTable("datos")
        Dim fila As DataRow
        Dim columna As DataColumn
        Dim vista As New DataView

     

        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            conexion.ConnectionString = "provider = Microsoft.jet.oledb.4.0;Data source=c:\acsipa\acsipa.mdb"
            conexion.Open()
            acuerdo.Open("select * from acuerdo", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            avance.Open("select * from avance", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            riesgo.Open("select * from riesgo", conexion, _
            ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic, -1)
            clv_centro = 16
            columna = New DataColumn("Num acta")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Clv acuerdo")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Riesgo")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Clase")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Fecha")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Avance")
            tabladatos.Columns.Add(columna)
            columna = New DataColumn("Fecha de Avance")
            tabladatos.Columns.Add(columna)
        End Sub

     

        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            x = 0
            avance.MoveFirst()
            While (x = 0)
                If avance.EOF = False Then
                    If clv_centro = avance.Fields("clv_centro").Value And avance.Fields("ban").Value = 1 And _
                       avance.Fields("avance").Value < 100 Then
                        clv_acuer = avance.Fields("clv_acuerdo").Value
                        y = 0
                        riesgo.MoveFirst()
                        While y = 0
                            If riesgo.EOF = False Then
                                If clv_acuer = riesgo.Fields("clv_acuerdo").Value Then
                                    x1 = 0
                                    acuerdo.MoveFirst()
                                    While (x1 = 0)
                                        If acuerdo.EOF = False Then
                                            If clv_acuer = acuerdo.Fields("clv_acuerdo").Value Then
                                                fecha = acuerdo.Fields("fecha_com").Value
                                                fila = tabladatos.NewRow
                                                fila("Num acta") = avance.Fields("num_acta").Value
                                                fila("Clv acuerdo") = avance.Fields("clv_acuerdo").Value
                                                fila("Riesgo") = riesgo.Fields("riesgo").Value
                                                fila("Clase") = riesgo.Fields("clase").Value
                                                fila("Fecha") = fecha.ToShortDateString
                                                fila("Avance") = avance.Fields("avance").Value
                                                fila("Fecha de Avance") = Date.Today.ToShortDateString
                                                tabladatos.Rows.Add(fila)
                                                acuerdo.MoveNext()
                                            Else
                                                acuerdo.MoveNext()
                                            End If
                                        Else
                                            x1 = 1
                                        End If
                                    End While
                                    riesgo.MoveNext()
                                Else
                                    riesgo.MoveNext()
                                End If
                            Else
                                y = 1
                            End If
                        End While
                        avance.MoveNext()
                    Else
                        avance.MoveNext()
                    End If
                Else
                    x = 1
                End If
            End While
            Me.DataGridView1.DataSource = tabladatos
        End Sub
    End Class

     

     

    miércoles, 2 de mayo de 2007 17:29
  • jeje, yo de nuevo, pero ya nada mas para decirte q ya pude agregar el datatable al data set y lo hize con el siguiente codigo, grax

     

     

    Code Snippet

    DataSet1.Tables.Add(tabladatos)

     

    miércoles, 2 de mayo de 2007 23:49