Volcar un dataset en una base de datos con ADO.NET

Vamos a realizar un volcado de un dataset «a mano» en una base de datos, mediante instrucciones tipo INSERT, a través de un objeto de la clase OleDbCommand. Se va a realizar sobre una base de datos Access.

Supongamos un dataset que tiene una sola tabla (la tabla 0) y en ella hay dos campos, nombre y apellidos. La tabla en la base de datos, se llamará PERSONAS.

Vamos a realizar la inserción de la siguiente manera:

Debemos añadir la siguiente línea al principio de nuestro código:

Imports System.Data.OleDb

Posteriormente prepararemos el comando de alta para no tener que crearlo en cada iteración, y así en cada repetición sólo tendremos que darle valores a sus parámetros y ejecutarlo.

‘Declaraciones
Dim cmAlta As OleDbCommand
Dim i As Integer
Dim cn as OleDbConnection

‘Construimos y abrimos la conexión con la base de datos
cn = new OleDbConnection(«Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ruta_del_fichero_de_access;User Id=admin;Password=;»);
cn.open()

‘Preparamos el comando
cmAlta = New OleDbCommand(«INSERT INTO personas(nombre,apellidos) VALUES(@nombre,@apellidos)»)
cmAlta.Parameters.Add(«@nombre», OleDbType.VarChar)
cmAlta.Parameters.Add(«@apellidos», OleDbType.VarChar)
cmAlta.Connection = cn   
For i = 0 To dsPersonas.Tables(0).Rows.Count – 1
   ‘rellenamos el valor de los parámetros
   cmAlta.Parameters(«@nombre»).Value = dsPersonas.Tables(0).Rows(i)(«nombre»).ToString()
   cmAlta.Parameters(«@apellidos»).Value = dsPersonas.Tables(0).Rows(i)(«apellidos»).ToString()
   ‘realizamos el alta
   cmAlta.ExecuteNonQuery()
Next

‘Cerramos la conexion con la base de datos
cn.close()

Quizá te interese...