Como pasar el contenido de un Datagrid a una tabla en acces
Hola compañero cybernautas, en mi caso busque en varios foros una forma simple de como pasar información que tenemos en un datagrid a una tabla en access, recuerde. hay muchas maneras de realizar esto. pero todas deberan de realizar un recorrido por el datagrid para de esta forma almacenar fila por fila los campos que posee el datagrid y hacerlos corresponder con los campos que posee la tabla destino en acces,. en este caso debemos tener cuidado que la tabla destino tenga la misma estructura que nuestras columnas en el datagrid, tambien a tomar en cuenta dbemos ver que tipo de dato es el que posee cada campo en la tabla de access de esta forma cuando estemos realizando el recorrido por el datagrid le pasemos con los tipo de datos que corresponde.
ahora. primero debemos tener declarado una conexion donde se encuentra nuestra base de dato. en mi caso tengo un modlulo aparte donde solo mando a llamer a esta conexion:
conexion = New OleDb.OleDbConnection
conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=U:base_sistemaBases_Latino.accdb"
ya teniendo nuestras conexion, lo segundo es que nuestro datagrid tuvo que tener una fuente de donde tomamos valores para llenarla, aca puede variar, ya sea que esos datos los tomamos de una archivo de excell (si quieren este procedimiento por favor solicitarlo y asi hago otro posts especifico) o lo tomamos de otra tabla en access (realizar un fill a un datatable con una tabla de access, podria ser otro posts jejeje ).
ok. listo tenemos un datagrid con datos, tenemos un tabla en acces destino. pasamos a declarar oledb.oledbcomand con que realizaremos el insert (recuerdo nuevamente , hay muchas maneras, esta me resulto a mi la mas facil).
Bueno no hago mas largo este post, si no se van a aburrir, si entraron aca es que hay en ustedes una nocion de programación en .NET ("como me dicen el SUPER PROGRAMADOR" , VE PUES...) ... bueno...aca el codigo que corresponde a un click en el boton guardar... (cual boton?) pues el que tienen en el form...(ese seria otro post... no no creo..no tengo tiempo)
aca el codigo en Vb .net.... si ahora si....aca va
Private Sub btn_guardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_guardar.Click
' preparar la sentencia INSERT DENTRO DE UNA VARIABLE TIPO STRING
Dim sQ As String = "insert into TIPO_CAMBIO(UsXcS,FECHA) " & " values(@UsxCs,@FECHA);"
'declaro un oledbcomand para ejecutar comando
Dim comando As New OleDb.OleDbCommand(sQ, conexion)
'abro mi conexion
conexion.Open()
'comienso a recorrer mi datagri linea por linea y guardo mis columnas en mi tabla de acces
For Each R As DataGridViewRow In Form_dollarDataGridView1.Rows
comando.Parameters.Clear()
'comando.Parameters.AddWithValue("@UsxCs", _folio)
comando.Parameters.AddWithValue("@UsxCs", CDbl(R.Cells("UsxCs".Value))
comando.Parameters.AddWithValue("@FECHA", CDate(R.Cells("FECHA".Value))
'comando.Parameters.AddWithValue("@Rel", CInt(R.Cells("Rel".Value))
'comando.Parameters.AddWithValue("@Total", CInt(R.Cells("Total".Value))
'comando.Parameters.AddWithValue("@Valor", CInt(R.Cells("Valor".Value))
' ejecuto mi comando para insertar en base dato
comando.ExecuteNonQuery()
Next
' cierro mi conexion
conexion.Close()
End Sub
y listo....!!!!!!!!!!!!!! revisamos en nuestra base dato y los datos que tenemos en nuestro datagrid deberan estar almacenado en la tabla correspondiente.!
espero que les sirva, se pueden agregar mas parametros como ir verificando si en la fila que recorremos no tenga valores nulo, si es asi nos mandaria error al ejecutar el comando, (pero ese seria otro posts)..

