none
Pasar datos de datagridview a base de datos en acces y vb.net RRS feed

  • Pregunta

  • Buenos Tardes a todos me podrían apoyar.

    tengo una aplicación que voy desarrollando, ya ase tiempo y no he podido darle solución al botón para  guardar el contenido de un datagridview a acces 2013 .

    este es el código que uso el cual me da error.

    me podrían apoyar para solucionarlo. Gracias.

     Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

            Try
                For i As Integer = 0 To Listado.Rows.Count - 1
                    conexionn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DB18ADM\DB18EG1INV.accdb"
                    conexionn.Open()

                    Dim Sqlguardar As String
                    Sqlguardar = "INSERT INTO Ventas (Fecha, Hora, Orden, Usuario, Codigo, Producto, Detalles, Cantidad, Precio, SubTotal) " _
                        & "VALUES (@Fecha, @Hora, @Orden, @Usuario, @Codigo, @Producto, @Detalles. @Cantidad, @Precio, @SubTotal)"
                    Dim cmd As New OleDbCommand(Sqlguardar, conexionn)

                    cmd.CommandType = CommandType.Text
                    cmd.Parameters.AddWithValue("@Fecha", Label33.Text)
                    cmd.Parameters.AddWithValue("@Hora", Label34.Text)
                    cmd.Parameters.AddWithValue("@Orden", Listado.Rows(i).Cells(1).Value())
                    cmd.Parameters.AddWithValue("@Usuario", Listado.Rows(i).Cells(2).Value())
                    cmd.Parameters.AddWithValue("@Codigo", Listado.Rows(i).Cells(3).Value())
                    cmd.Parameters.AddWithValue("@Producto", Listado.Rows(i).Cells(4).Value())
                    cmd.Parameters.AddWithValue("@Detalles", Listado.Rows(i).Cells(5).Value())
                    cmd.Parameters.AddWithValue("@Cantidad", Listado.Rows(i).Cells(6).Value())
                    cmd.Parameters.AddWithValue("@Precio", Listado.Rows(i).Cells(7).Value())
                    cmd.Parameters.AddWithValue("@SubTotal", Listado.Rows(i).Cells(8).Value())
                    cmd.ExecuteNonQuery()
                    conexionn.Close()

                Next

                MsgBox("Resgistros exportados exitosamente", MsgBoxStyle.Information, "Grupo Estándar")
                Label33.Text = "Total registros exportados: " & Listado.RowCount

            Catch ex As Exception
                MsgBox("Error al Ingresar el Registro", vbCritical, "Atención!")
                conexionn.Close()
            End Try

            

        End Sub

    jueves, 3 de mayo de 2018 23:10

Respuestas

  • Hola:
    Prueba con este codigo
    Option Explicit On
    Option Strict On
    Imports System.Data.OleDb
    Imports System.Transactions
    Public Class Form1
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Try
                Dim lsCadConexion As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\DB18ADM\DB18EG1INV.accdb"
                'Iniciar una transaccion, hay que añadir referencia a system.transactions
                Using miTransaccion As New TransactionScope
                    Using Conexion As New OleDbConnection(lsCadConexion)
                        Conexion.Open()
                        Dim Sqlguardar As String = "INSERT INTO Ventas (Fecha, Hora, Orden, Usuario, Codigo, Producto, Detalles, Cantidad, Precio, SubTotal) VALUES (@Fecha, @Hora, @Orden, @Usuario, @Codigo, @Producto, @Detalles. @Cantidad, @Precio, @SubTotal)"
                        For i As Integer = 0 To Listado.Rows.Count - 1
                            Using cmd As New OleDbCommand(Sqlguardar, Conexion)
                                cmd.Parameters.AddWithValue("@Fecha", Label33.Text)
                                cmd.Parameters.AddWithValue("@Hora", Label34.Text)
                                cmd.Parameters.AddWithValue("@Orden", Listado.Rows(i).Cells(1).Value())
                                cmd.Parameters.AddWithValue("@Usuario", Listado.Rows(i).Cells(2).Value())
                                cmd.Parameters.AddWithValue("@Codigo", Listado.Rows(i).Cells(3).Value())
                                cmd.Parameters.AddWithValue("@Producto", Listado.Rows(i).Cells(4).Value())
                                cmd.Parameters.AddWithValue("@Detalles", Listado.Rows(i).Cells(5).Value())
                                cmd.Parameters.AddWithValue("@Cantidad", Listado.Rows(i).Cells(6).Value())
                                cmd.Parameters.AddWithValue("@Precio", Listado.Rows(i).Cells(7).Value())
                                cmd.Parameters.AddWithValue("@SubTotal", Listado.Rows(i).Cells(8).Value())
                                cmd.ExecuteNonQuery()
                            End Using
                        Next
                    End Using
                    miTransaccion.Complete()
                End Using
                MsgBox("Resgistros exportados exitosamente", MsgBoxStyle.Information, "Grupo Estándar")
            Catch ex As Exception
                MsgBox("Error al Ingresar el Registro", vbCritical, "Atención!")
            End Try
        End Sub
    End Class

    Un saludo desde Bilbo
    Carlos
    viernes, 4 de mayo de 2018 6:08