Ver Mensaje Individual
  #8 (permalink)  
Antiguo 21/05/2008, 02:29
Avellaneda
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 10 meses
Puntos: 37
Respuesta: Recorrer datagrid y guardar en tabla

Bueno, lo prometido es deuda.

Prueba con este procedimiento a "GuardarEnTabla" le pasas como prámetros la conexión que ya tienes abierta y la consulta.

Código:
Private Sub GuardarEnTabla(ByVal Con As SqlConnection, ByVal StrQry As String)
        Dim i As Integer
        Try
            Con.Open()

            Dim Cmd As New SqlCommand(StrQry, Con)
            ' creamos un reader con los datos de la consulta
            Dim Reader As SqlDataReader = Cmd.ExecuteReader

            Dim sql As String = ""
            ' leemos el reader y vamos ejecutando la consulta
            While Reader.Read
                sql = "INSERT INTO Facturacion ("
                For i = 0 To Reader.FieldCount - 1
                    sql = sql & Reader.GetName(i) & ","
                Next
                ' quitar la última coma
                sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 1)
                sql = sql & ") VALUES ('"
                For i = 0 To Reader.FieldCount - 1
                    sql = sql & Reader(i) & "','"
                Next
                ' eliminar los dós últimos caracteres
                sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 2)
                sql = sql & ")"

                EjecutarInsert(sql)

            End While
            Reader.Close()
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub

    Private Sub EjecutarInsert(ByVal sSQL As String)
        Try
            ' creamos una nueva conexión a la BD
            ' nota: Pon la misma cadena de conexión que tenías antes
            Dim cone As New SqlConnection("MiCadenadeConexion")
            cone.Open()

            Dim cdo As New SqlCommand(sSQL, cone)
            cdo.ExecuteNonQuery()
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub