Insertar Datos a Datagridview

Respuesta de
eyebird
a
Usuario
Hola.. me gustaría saber si me puedes ayudar con esto: estoy programando en VB net.. veras,, tengo un datagridview.. al cual le pongo unos datos directamente en las celdas(cuando corro el sistema) y quiero que al darle click en cerrar me guarde los datos esos en una tabla (en Sqlserver).. ¿cómo puedo hacer esto? Tengo el siguiente código que se supone (según mi lógica) lo debería hacer..
Dim conx As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection("Data Source=11.11.11.1;Initial Catalog=BD240;Persist Security Info=True;User ID=sitauser;Password=blabla")
                conx.Open()
                conx.Open()
                Dim sqql As String = "Insert Into TABCOMP (NUM_REF,FEC_CREA,COMP,MONTO,AUTORIZA) VALUES(@NUM_REF,@FEC_CREA,@COMP,@MONTO,@AUTORIZA)"
                Dim comm As New SqlCommand(sqql, conx)
                For Each row As DataGridViewRow In Me.DataGridView2.Rows
                    comm.Parameters.AddWithValue("@NUM_REF", row.Cells("NUM_REF"))
                    comm.Parameters.AddWithValue("@FEC_CREA", row.Cells("FECHA"))
                    comm.Parameters.AddWithValue("@COMP", row.Cells("COMPLEMENTO"))
                    comm.Parameters.AddWithValue("@MONTO", row.Cells("MONTO"))
                    comm.Parameters.AddWithValue("@AUTORIZA", row.Cells("AUTORIZA"))
                    comm.ExecuteNonQuery()
                Next
                conx.Close()
No me muestra ningún error.. pero no me guarda los datos.. ¿alguna idea? De antemano te doy las gracias..!
Experto
Hola!
Tu código esta bien excepto que abres dos veces la conexión y cuando pasas el valor al parámetro no estas pasando el contenido de la celda el contenido de la celda nos lo regresa la propiedad Value.
Ejemplo:
comm.Parameters.AddWithValue("@NUM_REF",row.Cells("NUM_REF").Value)
Saludos!
Usuario
Gracias.. ahora lo único malo es que me arregla un renglón en blanco.. este es el código que ahora estoy usando:
Dim conx As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection("Data Source=69.20.120.91;Initial Catalog=BD240;Persist Security Info=True;User ID=sitauser;Password=bmdesarrollo")
                conx.Open()
                For i As Integer = 0 To DataGridView2.Rows.Count - 1
                    Dim sqql As String = "INSERT INTO TABCOMP (NUM_REF,FEC_CREA,COMP,MONTO,AUTORIZA) " & _
                                                      " VALUES ('" & glreferencia & "','" & glfechas & "','" & glcomplemento & "','" & glmonto & "','" & glautoriza & "')"
                    Dim comm As New SqlCommand(sqql, conx)
                    glreferencia = DataGridView2.Rows(i).Cells(0).Value.ToString
                    glfechas = DataGridView2.Rows(i).Cells(1).Value.ToString
                    glcomplemento = DataGridView2.Rows(i).Cells(2).Value.ToString
                    glmonto = DataGridView2.Rows(i).Cells(3).Value.ToString
                    glautoriza = DataGridView2.Rows(i).Cells(4).Value.ToString
                    comm.ExecuteNonQuery()
                Next
                conx.Close()
¿A qué crees que se deba? De antemano.. Gracias..!