Hola foro, ¿que tal?
Pues les venia con esta duda:
- Tengo un proyecto en vb.net (usando visual studio 2010 para mas informacion), que usa una base de datos enorme (1GB de datos, para mi eso es enoooorme) en mysql. Pues lo que hace la aplicaion es "importar" los datos de la hoja de calculos y ponerlos en una tabla.
Tonto no soy (por ahora, jaja, el día de mañana no se que será de mí) asi que he hecho que los campos de la tabla de la base de datos coincida con los nombres de los campos en la hoja de calculo (mas que nada para que coincida).
Bueno, pues mi duda es: ¿como hago yo para que mediante un metodo en vb.net la tabla de la base de datos coja los datos de la hoja de calculo excel?
Les dejo un poco de mi codigo para que asi puedan orientarse mejor (y poder ayudarme con más eficiencia, como no, una imagen vale mas que mil palabras).
Antes de nada unas premisas: tengo una clase vb que realiza la conexion a la base de daatos y otra que realiza los metodos pertinentes para controlarla etc, resumiendo, que el control de la BD esta echo, lo que necesito saber es como (que codigo sql y añadidos de vb.net necesarios para su funcionamiento) importar estos datos.
'El objeto objHojita es para controlar la clase de control BD
'Importar es el metodo que se encargara de importar los datos (por lo visto no me dara un derrame cerebral inventando nombres, eh?), y lo que hago es pasarle la ruta del archivo excel por un textbox, una tabla que contendra datos de forma temporal ("Altas") y una tabla que contendra los datos de forma mas permanente ("TAltas").
objHojita.Importar(txtRutaArchivo.Text, "Altas", "TAltas")
'Y la clase de control de BD, el metodo de importacion es este:
Sub Importar(ByVal excel, ByVal hoja, ByVal destino)
Try
'MyBase es el objeto para la conexion en profundo con la BD (trankis, funciona de maravilla)
MyBase.AbrirConexion()
Àqui empieza lo gordo. Esta linea de debajo, la variable connect, se supone que deberia contener la ruta del archivo y algo mas (no se el que, pero me han dicho que lo ponga asi, la ruta mas lo otro)
Connect = "'" + excel + "' 'Excel 8.0;HDR=Yes;IMEX=1;'"
'Y esta linea en un principio lo que hace es que pilla los datos, los mete en la tabla "destino" ("TAltas"), y luego copia los datos de la tabla destino en la tabla hoja ("Altas"). El caso es que falla.
MyBase.IniciarComando("INSERT INTO `" + hoja + "` SELECT * FROM `" + destino + "` IN `" + Connect + "`")
MyBase.InicioTransaccion()
MyBase.EjecutarComandoTR()
MyBase.AceptarTrasancion()
Catch ex As Exception
MessageBox.Show(ex.Message)
MyBase.RechazarTrasancion()
End Try
MyBase.CerrarConexion()
End Sub
Vale, asi lo he intentado hacer. Solucion que propongo: importar los datos de la hoja de calculo a la tabla destino ("TAltas") y luego ya si eso los copio en la otra.
En definitiva: no funciona como yo lo hago.
Asi que: ¿como hago para importar los datos de un excel a una tabla BD?
Solo necesito la sintaxis, llevarlo a .net ya me encargo yo.
Y lo siento si molesto a alguien poniendo este tema en esta zona del foro, es uqe no sabia si ponerlo en vb.net o en la zona sql.
Muchas gracias por su presencia y por sus aportaciones.