Ver Mensaje Individual
  #6 (permalink)  
Antiguo 19/06/2009, 10:20
Pinty
 
Fecha de Ingreso: febrero-2009
Mensajes: 472
Antigüedad: 15 años, 2 meses
Puntos: 14
Respuesta: Pasar Excel a SQL

Hola JackDaniel, si se puede, de hecho yo lo he hecho de esa manera. Te lo voy a explicar lo mejor que pueda, en caso de que tengas dudas no dudes en preguntar. Lo primero y mas importante esta hecho en vb.net
Vamos alla
Lo primero es que consideramos la hoja de excel como un origen de datos, como si fuese una base de datos. Una vez teniendo esa consideracion el codigo sale solo jejee

Código:
Imports System.Data
            Imports System.Data.OleDb
            Imports System.Data.SqlClient
A continuacion cargamos un Dataset con los datos del excell
Código:
Dim conexion As New OleDbConnection
            Dim comando As New OleDbCommand
            Dim adaptador As New OleDbDataAdapter
            Dim dsproductos As New DataSet
            Dim j As Integer

            conexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=direccion del excell; Extended Properties= Excel 8.0;"
            conexion.Open()
            comando.CommandText = "SELECT campos FROM [tabla$]"
            comando.Connection = conexion
            adaptador.SelectCommand = comando
            conexion.Close()
            adaptador.Fill(dsproductos, "productos")
IMPORTANTE: El nombre de la tabla tiene que llevar el simbolo $ no es que se me haya ido la mano

Ahora ya estan los datos cargados del excell asi que ya los podemos guardar en la base de datos

Código:
Dim conexion2 As New SqlConnection
Dim cmdguardar As New SqlCommand

For j = 0 To dsproductos.Tables(0).Rows.Count - 1
conexion2.ConnectionString = "cadena de conexion a la base de datos"
cmdguardar.CommandText="INSERT INTO tabla campo VALUES (@variable)"
cmdguardar.Connection=conexion2
cmdguardar.Parameters.Add(new sqlparameter("@variable",sqltype.VarChar, 50)).Value=dsproductos.Tables(0).Rows(j)("campo del dataset").ToString
                     

                conexion2.Open()
                cmdguardar.ExecuteNonQuery()
                cmdguardar.Parameters.Clear()
                conexion2.Close()
            Next
Mucha suerte. Un saludo

Pinty

pd: freegirl espero que a ti tambien te sirva de ayuda