Visual Basic.NET - Importar datos de Excel a SQL atraves de .NET

   
Vista:

Importar datos de Excel a SQL atraves de .NET

Publicado por Armando de León (4 intervenciones) el 15/01/2008 18:07:27
Que tal, alguien puede ayudarme con código para importar datos de excel a una base de datos de SQL a través de Visual .NET?

Tengo el siguiente código pero no pasa los datos correctos, me pone en las variablesel valor de:
System.__ComObject

'trabajar con excel
Dim CategoryName As String
'' Creamos un objeto WorkBook
Dim objLibroExcel As Excel.Workbook
'' Creamos un objeto WorkSheet
Dim objHojaExcel As Excel.Worksheet

'' Iniciamos una instancia a Excel
m_excel = New Excel.Application
m_excel.Visible = False

'' Creamos una instancia del Workbooks de Excel
'' Creamos una instancia de la primera hoja de trabajo de Excel
objLibroExcel = m_excel.Workbooks.Open(txtruta.Text)
objHojaExcel = objLibroExcel.Worksheets(txthoja.Text)
objHojaExcel.Visible = Excel.XlSheetVisibility.xlSheetVisible

'' Hacemos esta hoja la visible en pantalla
'' (como seleccionamos la primera esto no es necesario
'' si seleccionamos una diferente a la primera si lo
'' necesitaríamos, esto lo hacemos como forma de mostrar como cambiar de entre hojas en un documento Excel).
objHojaExcel.Activate()

Dim i As Integer
i = txtinicio.Text

Do While i <= txtfin.Text

'Variables de excel
Dim paterno, materno, titular, domicilio, numero, cp, telefono, lada

paterno = objHojaExcel.Cells(i, "B")
materno = objHojaExcel.Cells(i, "C")
titular = objHojaExcel.Cells(i, "D")
domicilio = objHojaExcel.Cells(i, "E")
numero = objHojaExcel.Cells(i, "F")
cp = objHojaExcel.Cells(i, "G")
telefono = objHojaExcel.Cells(i, "H")
lada = objHojaExcel.Cells(i, "I")

Dim cnnguardar As OdbcConnection
Dim cmdguardar As New OdbcCommand

Try
cnnguardar = New OdbcConnection("DSN=prueba" & ";" & "UID=" & usu & "" & ","& "PWD=" & pas & "")
cmdguardar.CommandText = "insert into personas " & " values(" & "'" & noclave & "', " & "'" & paterno & "', " & "'" & materno & "', " & "'" & titular & "', " & "'" & domicilio & "', " & "'" & numero & "', " & "'" & cp & "', " & "'" & telefono & "', " & "'" & lada & "', " & "'" & "" & "', " & "'" & frm_menu.DefInstance.lblusuario.Text & "', " & "'" & fecha & "', " & "'" & TimeOfDay & "')"
cmdguardar.Connection = cnnguardar
cmdguardar.Connection.Open()
cmdguardar.ExecuteNonQuery()
cnnguardar.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try

i = i + 1
Loop
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por Eduardo Correa (1 intervención) el 03/03/2008 23:46:05
Es logico pues, estas imprimiendo celdas
deberias cambiar esta logica:
paterno = objHojaExcel.Cells(i, "B")
por :
paterno = objHojaExcel.Range("B" & i).value

Eso saca el datos de la celda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por Davo (2 intervenciones) el 23/02/2009 23:49:47
AUXILIO POR FAVOR NECESITO AYUDA SOBRE ESTE MISMO TEMA......

COMO LE AGO PARA EXPORTAR A SQL SERVER 2005 DATOS DESDE EXCEL EN VB 2005
DE MANERA AUTOMATICA. YA ISE EL RELOJ TEMPORIZADOR PERO NO SE COMO EXPORTAR LOS DATOS.....................
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por Davo (2 intervenciones) el 23/02/2009 17:26:07
yo = tengo el mismo problema help
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por victor (1 intervención) el 16/07/2009 03:43:19
hola

nese cito ayuda es qu e estoy aciendo un pequeño programa donde son 5 formatos diferentes lo estoy asiendo en el .net 2005, estoy utilizando formularios
quiero cargarlos datos en los formularios
y que dandole un solo click me exporte los datos a excel
por favor si me pueden ayudar
lo nesecito mucho
bueno gracias
saludos
bye
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por Armando de León (4 intervenciones) el 16/07/2009 16:33:54
ruta = txtarchivo.Text

hoja = txthoja.Text

objexcel = GetObject(ruta)
With objexcel
.Application.ScreenUpdating = False
.worksheets(hoja).Activate()
End With

p = Val(txtinicio.Text)
h = Val(txtfinal.Text)

Do While p <= h
posicion1 = "B" & p
posicion2 = "C" & p
posicion3 = "D" & p
posicion4 = "E" & p
posicion5 = "F" & p
posicion6 = "G" & p
posicion7 = "H" & p
posicion8 = "I" & p

cmdfolio.let_ActiveConnection(cnnconexion)
cmdfolio.CommandTimeout = 10
cmdfolio.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdfolio.CommandText = "SELECT * FROM numero_clave"

rstfolio = cmdfolio.Execute
If rstfolio.EOF = False Then
folio = rstfolio.Fields("clave").Value
folio_nuevo = rstfolio.Fields("clave").Value + 1
End If

cmdfolio.let_ActiveConnection(cnnconexion)
cmdfolio.CommandTimeout = 10
cmdfolio.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdfolio.CommandText = "update numero_clave " & " set clave = " & "'" & folio_nuevo & "' "
cmdfolio.Execute()

paterno = objexcel.worksheets(hoja).range(posicion1).Text
materno = objexcel.worksheets(hoja).range(posicion2).Text
titular = objexcel.worksheets(hoja).range(posicion3).Text
domicilio = objexcel.worksheets(hoja).range(posicion4).Text
numero = objexcel.worksheets(hoja).range(posicion5).Text
cp = objexcel.worksheets(hoja).range(posicion6).Text
telefono = objexcel.worksheets(hoja).range(posicion7).Text
lada = objexcel.worksheets(hoja).range(posicion8).Text

Try
cmdgrabar.let_ActiveConnection(cnnconexion)
cmdgrabar.CommandTimeout = 10
cmdgrabar.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdgrabar.CommandText = "insert into " & " personas values(" & "'" & folio & "'," & "'" & paterno & "'," & "'" & materno & "'," & "'" & titular & "'," & "'" & domicilio & "'," & "'" & numero & "'," & "'" & cp & "'," & "'" & telefono & "'," & "'" & lada & "'," & "'" & "" & "'," & "'" & "EXCEL" & "'," & "'" & fecha & "'," & "'" & TimeOfDay & "')"
cmdgrabar.Execute()
Catch ex As Exception
MsgBox(ex.ToString)
Exit Sub
End Try

p = p + 1
Loop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por Armando de León (4 intervenciones) el 16/07/2009 16:34:36
'Yo lo tengo de la siguiente manera y funciona


ruta = txtarchivo.Text

hoja = txthoja.Text

objexcel = GetObject(ruta)
With objexcel
.Application.ScreenUpdating = False
.worksheets(hoja).Activate()
End With

p = Val(txtinicio.Text)
h = Val(txtfinal.Text)

Do While p <= h
posicion1 = "B" & p
posicion2 = "C" & p
posicion3 = "D" & p
posicion4 = "E" & p
posicion5 = "F" & p
posicion6 = "G" & p
posicion7 = "H" & p
posicion8 = "I" & p

cmdfolio.let_ActiveConnection(cnnconexion)
cmdfolio.CommandTimeout = 10
cmdfolio.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdfolio.CommandText = "SELECT * FROM numero_clave"

rstfolio = cmdfolio.Execute
If rstfolio.EOF = False Then
folio = rstfolio.Fields("clave").Value
folio_nuevo = rstfolio.Fields("clave").Value + 1
End If

cmdfolio.let_ActiveConnection(cnnconexion)
cmdfolio.CommandTimeout = 10
cmdfolio.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdfolio.CommandText = "update numero_clave " & " set clave = " & "'" & folio_nuevo & "' "
cmdfolio.Execute()

paterno = objexcel.worksheets(hoja).range(posicion1).Text
materno = objexcel.worksheets(hoja).range(posicion2).Text
titular = objexcel.worksheets(hoja).range(posicion3).Text
domicilio = objexcel.worksheets(hoja).range(posicion4).Text
numero = objexcel.worksheets(hoja).range(posicion5).Text
cp = objexcel.worksheets(hoja).range(posicion6).Text
telefono = objexcel.worksheets(hoja).range(posicion7).Text
lada = objexcel.worksheets(hoja).range(posicion8).Text

Try
cmdgrabar.let_ActiveConnection(cnnconexion)
cmdgrabar.CommandTimeout = 10
cmdgrabar.CommandType = ADODB.CommandTypeEnum.adCmdText
cmdgrabar.CommandText = "insert into " & " personas values(" & "'" & folio & "'," & "'" & paterno & "'," & "'" & materno & "'," & "'" & titular & "'," & "'" & domicilio & "'," & "'" & numero & "'," & "'" & cp & "'," & "'" & telefono & "'," & "'" & lada & "'," & "'" & "" & "'," & "'" & "EXCEL" & "'," & "'" & fecha & "'," & "'" & TimeOfDay & "')"
cmdgrabar.Execute()
Catch ex As Exception
MsgBox(ex.ToString)
Exit Sub
End Try

p = p + 1
Loop
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Importar datos de Excel a SQL atraves de .NET

Publicado por ximpa (1 intervención) el 19/04/2011 16:16:17
Hola buen dia, quisiera saber de donde sacan u obtienen los valores:
p = Val(txtinicio.Text) ->txtinicio.Text
h = Val(txtfinal.Text) ->txtfinal.Text

agradezco de antemano su respuesta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar