none
Guadar datos que han sido capturados en un Datagrid RRS feed

  • Pregunta

  • Hola a todos:

    Como puedo hacer para guardar un conjunto de registros que he capturado en un control datagrid, por ejemplo cuando un cliente hace un pedido de productos; en un pedido pueden haber varios productos, entonces he creado varias filas en el datagrid, de la siguiente manera:

    id_pedido, id_cliente,  id_producto, Cantidad

    1                      1                     1                  10

    1                      1                      2                 10

    1                       1                     3                  10   etc,

    Como puedo hacer para mandar el pedido de productos a la base de datos, si estoy trabando con sql Server.

    miércoles, 25 de octubre de 2006 18:49

Respuestas

  • Otoniel,
    Como siempre existen diversas formas, unas son mas faciles que otras.
    Te documento una sin usar el 'DataSet.Designer', una vez creado el 'DataAdapter' solo tienes que recorrer el DataGridView que quieres almacer, llamando a una funcion de insertar por cada fila. No he probado este codigo... pero creo que te servira para tomar idea.

    Me.Adaptador.InsertCommand = New System.Data.OleDb.OleDbCommand
    Me.Adaptador.InsertCommand.Connection = Me.Conexion...(Conexion=Tu conexion con el SQL)
    Me.Adaptador.InsertCommand.CommandText = "Insert Into 'tabla' ('A','B','C') Values (?, ?, ?)

    Me.Adaptador.InsertCommand.CommandType = System.Data.CommandType.Text
    Me.Adaptador.InsertCommand.Parameters.Add(
    New..OleDbParameter. para A)
    Me.Adaptador.InsertCommand.Parameters.Add(New..OleDbParameter. para B)
    Me.Adaptador.InsertCommand.Parameters.Add(New..OleDbParameter. para C)

    Para recorrer el DataGrid :

    'Recorrer todas las columnas
    Dim Col As Integer = Me.DataGridView1.CurrentCell.ColumnIndex
    Dim Resultado As Integer = 0

    For Each row As DataGridViewRow In Me.DataGridView1.Rows
        Me.Adaptador.InsertCommand.Parameters(0).Value = row.Cells(0).Value
        Me.Adaptador.InsertCommand.Parameters(1).Value
    = row.Cells(1).Value
        Me.Adaptador.InsertCommand.Parameters(2).Value = row.Cells(2).Value
        Resultado = Me.Adaptador.InsertCommand.ExecuteNonQuery
        If Resultado=???.... then 'Tratamiento si no ha podido insertar los datos

    Next

    Para generar el 'InsertCommand', 'UpdateCommand'... te puede ser muy util repasar el ejemplo de : http://msmvps.com/blogs/peplluis/attachment/131209.ashx

    Saludos,
    Pep Lluis,

    jueves, 26 de octubre de 2006 14:19
    Moderador