none
Pasar datos de una Datagridview a una base de datos en Access en visual studio 2013 RRS feed

  • Pregunta

  • Hola soy nuevo en esto de programar, estaba aprendiendo vb6 pero ahora estoy aventurando con visual studio 2013....

    Mi problema es el siguiente, tengo un Formulario el cual contiene 3 Textbox 1 boton de Agregar, con esto voy llenando mi datagridview.... lo que necesito es que una vez lleno el datagridview con los datos que yo quiera, presionar el boton Generar y mandar todos esos datos a una tabla "Detalle" que esta en access.

    La tabla detalle tiene los campos: Cantidad, Descripcion, PUnitario, PTotal.

    tengo un codigo pero al usarlo solo me pasa la primera fila del datagridview y no me pasa nada mas... este es el codigo:

    BOTON GENERAR:

    Dim sql As String = "INSERT INTO DETALLE(CANTIDAD, DESCRIPCION, PUNITARIO, PTOTAL) VALUES (?,?,?,?)"

    Using Command2 As New OleDbCommand(sql, conexion)

    For Each row As DataGridViewRow In DataGridView1.Rows

    Command2.Parameters.AddWithValue("CANTIDAD", Convert.ToInt32(row.Cells(0).Value))

    Command2.Parameters.AddWithValue("DESCRIPCION", Convert.ToString(row.Cells(1).Value))

    Command2.Parameters.AddWithValue("PUNITARIO", Convert.ToDecimal(row.Cells(2).Value))

    Command2.Parameters.AddWithValue("PTOTAL", Convert.ToDecimal(row.Cells(3).Value))

    Next

    Command2.ExecuteNonQuery()

    End Using

    espero me puedan ayudar.

    como dije estoy trabajando windowform vs2013

    martes, 28 de abril de 2015 22:09

Respuestas

  • Deberías meter la instrucción de ejecución de la query en el For para que te haga una INSERT por cada fila del DataGridView:

    Dim sql As String = "INSERT INTO DETALLE(CANTIDAD, DESCRIPCION, PUNITARIO, PTOTAL) VALUES (?,?,?,?)"
    
    
    Using Command2 As New OleDbCommand(sql, conexion)
    
    For Each row As DataGridViewRow In DataGridView1.Rows
    
    Command2.Parameters.Clear()
    
    Command2.Parameters.AddWithValue("CANTIDAD", Convert.ToInt32(row.Cells(0).Value))
    
    Command2.Parameters.AddWithValue("DESCRIPCION", Convert.ToString(row.Cells(1).Value))
    
    Command2.Parameters.AddWithValue("PUNITARIO", Convert.ToDecimal(row.Cells(2).Value))
    
    Command2.Parameters.AddWithValue("PTOTAL", Convert.ToDecimal(row.Cells(3).Value))
    
    Command2.ExecuteNonQuery()
    
    Next
    
    

    martes, 28 de abril de 2015 22:14

Todas las respuestas

  • Deberías meter la instrucción de ejecución de la query en el For para que te haga una INSERT por cada fila del DataGridView:

    Dim sql As String = "INSERT INTO DETALLE(CANTIDAD, DESCRIPCION, PUNITARIO, PTOTAL) VALUES (?,?,?,?)"
    
    
    Using Command2 As New OleDbCommand(sql, conexion)
    
    For Each row As DataGridViewRow In DataGridView1.Rows
    
    Command2.Parameters.Clear()
    
    Command2.Parameters.AddWithValue("CANTIDAD", Convert.ToInt32(row.Cells(0).Value))
    
    Command2.Parameters.AddWithValue("DESCRIPCION", Convert.ToString(row.Cells(1).Value))
    
    Command2.Parameters.AddWithValue("PUNITARIO", Convert.ToDecimal(row.Cells(2).Value))
    
    Command2.Parameters.AddWithValue("PTOTAL", Convert.ToDecimal(row.Cells(3).Value))
    
    Command2.ExecuteNonQuery()
    
    Next
    
    

    martes, 28 de abril de 2015 22:14
  • primero que nada gracias por tu gentil ayuda...

    hice lo que me indicaste y ahora lo que me pasa es que solo me pasa la primera fila del DatagridView, y en la BD Access me la repite 2 veces esa primera fila ejemplo:

    Ingreso en el Formulario:

    Cantidad: 2

    Descricion: Impresoras

    PUnitario: 120

    PTotal: 240

    Al darle click en Generar me sale todo OK.

    al revisar mi BD Access me sale:

    2    Impresoras     120      240

    2    Impresoras     120      240

    Si ingreso 3 items en el formulario, en la base de Datos me refleja 4 repetidos de la primera fila del DGView

    que podrá ser..???


    • Editado Luisin2409 lunes, 4 de mayo de 2015 23:19
    lunes, 4 de mayo de 2015 23:12
  • ¿Pero antes de dar a generar en el grid se muestran bien los datos?
    martes, 5 de mayo de 2015 9:41
  • jueves, 7 de mayo de 2015 4:07
  • jueves, 7 de mayo de 2015 4:07
  • La primera imagen es del programa donde ingreso los datos y todo sale OK.

    la segunda imagen muestra el resultado del ingreso que se realizo (segun lo mostrado en la primera imagen).

    Gracias por su gentil ayuda

    jueves, 7 de mayo de 2015 4:12
  • Hola Luisin 2409 como estas....tengo el mimo problema que me repite los registros en Access....¿Cómo lo has solucionado?
    martes, 22 de enero de 2019 23:46