Importar Datos de Excel a SqlCompact

22
 Se unió Jun 2006 Conversaciones d Mostrar actividad Principales respuestas  70,850 Puntos Superior 0.1% Enrique M. Montejo MVP Conversaciones relacionadas importantes Como importar datos de excel a SqlCompact por medio de una consulta? Importar de Excel a SQL Server importar datos de un excel Importar datos desde Excel importar datos de excel a un datagridview Formular una pregunta Acceso rápido Buscar conversaciones relacionadas Buscar preguntas del foro Desarrollo > Importar datos de Excel a SqlCompact Pregunta 0 Inicie sesión para votar Responder | Citar martes, 02 de octubre de 2012 20:57 Luis_Escobar Softtek 12,265 Puntos Hola a todos:  Alguien sabe como puedo importar datos de una hoja de excel 2010 a unas tablas almacenadas en una Bd SqlCompact 3.5 ?, son mas de 100 mil registros los que quiero importar. Gracias! Saludos desde Monterrey, N.L. México Luis Escobar Editado  Luis_Escobar  martes, 02 de octubre de 2012 20:57 Respuestas Lenguaje VB.NET 5 6 13 Al usar este s itio ac epta el u so de cookies para aná lisis, conten ido pers onaliza do y pub licidad. Saber m ás Developer Network Suscripciones a MSDN Obtener herramientas Iniciar sesión Tecnologías Descargas Programas Comunidad  Documentación Ejemplos Síganos Foros  Blogs Asesores técnicos Channel 9 Importar datos de Excel a S qlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a... 1 de 22 10/20/2014 4:07 PM

description

Datos de Excel a SQL Compact

Transcript of Importar Datos de Excel a SqlCompact

  • Se uni Jun 2006

    Conversaciones d

    Mostrar actividad

    Principales respuestas

    70,850

    PuntosSuperior 0.1%

    Enrique M. Montejo

    MVP

    Conversaciones relacionadasimportantes

    Como importar datos de excel aSqlCompact por medio de unaconsulta?

    Importar de Excel a SQL Server

    importar datos de un excel

    Importar datos desde Excel

    importar datos de excel a undatagridview

    Formular una pregunta

    Acceso rpido

    Buscar conversacionesrelacionadas

    Buscar preguntas del foro

    Desarrollo >

    Importar datos de Excel a SqlCompact

    Pregunta

    0Iniciesesinparavotar

    Responder | Citar

    martes, 02 de octubre de 2012 20:57

    Luis_Escobar Softtek 12,265 Puntos

    Hola a todos:

    Alguien sabe como puedo importar datos de una hoja de excel 2010 a unas tablas almacenadas en una Bd

    SqlCompact 3.5 ?, son mas de 100 mil registros los que quiero importar.

    Gracias!

    Saludos desde Monterrey, N.L. Mxico

    Luis Escobar

    Editado Luis_Escobar martes, 02 de octubre de 2012 20:57

    Respuestas

    Lenguaje VB.NET

    5 6 13

    Al usar este sitio acepta el uso de cookies para anlisis, contenido personalizado y publicidad. Saber ms

    Developer Network

    Suscripciones a MSDN Obtener herramientas Iniciar sesin

    Tecnologas Descargas Programas Comunidad Documentacin Ejemplos Sganos

    Foros Blogs Asesores tcnicos Channel 9

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    1 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    Para no demorar mucho la respuesta, te voy a decir lo que tienes que hacer para pasar los datos de Excel a

    tu base de SQL Server Compact; despus, lo mismo es cuestin de "limar" un poco el cdigo.

    Una de las ventajas que tienen los objetos DataTable es que estos son independientes de cualquier origen

    de datos. Cuando tu rellenas de datos un objeto DataTable, estos datos residen en memoria y no

    dependen del origen de datos del cual los has tomado.

    Posteriormente, cuando desees actualizar el origen de datos con los datos existentes actualmente en el

    objeto DataTable, se le pasa ste objeto al mtodo Update de un adaptador de datos debidamente

    configurado. Pues aqu es donde est la clave de todo; en el adaptador de datos que debes de

    configurar para actualizar tu tabla de la base de SQL Server Compact.

    En resumidas cuentas. Tienes que rellenar un objeto DataTable con los datos de la hoja de Excel, y pasarle

    ese objeto al mtodo Update de un objeto SqlCeDataAdapter correctamente configurado.

    Para obtener el objeto DataTable con los datos de tu libro de Excel 2010, bien te puede servir la siguiente

    funcin:

    Imports System.Data.OleDb

    Imports System.Data.SqlServerCe

    Private Function GetDataFromExcel() As DataTable

    Try

    ' Configuramos la conexin con el libro de trabajo de Excel.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\Mis documentos\Libro1.xlsx;" & _

    "Extended Properties='Excel 12.0 Xml;HDR=Yes;'"

    Using cnn As New OleDbConnection(connString)

    Dim cmd As OleDbCommand = cnn.CreateCommand()

    ' Seleccionamos todos los registros de la Hoja1.

    '

    cmd.CommandText = "SELECT * FROM [Hoja1$]"

    ' Creamos y configuramos el adaptador de datos.

    '

    Dim da As New OleDbDataAdapter(cmd)

    ' Creamos un nuevo objeto DataTable.

    '

    Dim dt As New DataTable("Hoja1")

    ' Rellenamos el objeto DataTable.

    '

    da.Fill(dt)

    ' Devolvemos el objeto DataTable.

    '

    Return dt

    End Using

    Catch

    Throw

    End Try

    End Function

    Si observas que no te toma bien los datos de la hoja de Excel, aade el parmetro IMEX=1 a las

    propiedades extendidas de la cadena de conexin:

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    2 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > "La tabla externa no tiene el formato esperado"

    >

    > Estoy tratando de importar un archivo .Csv y en esta seccin

    > de cdigo es donde me manda el error:

    Luis, un archivo con extensin *.csv NO ES UN ARCHIVO DE EXCEL; se podr abrir con Microsoft Excel, pero

    un archivo *.csv es un ARCHIVO DE TEXTO PLANO DELIMITADO POR COMAS, por lo que es normal que

    obtengas el error que ests obteniendo, ya que en lugar de utilizar el ISAM de Excel del motor de datos

    Microsoft ACE, tienes que utilizar el ISAM de texto de dicho motor de datos.

    Modifica la cadena de conexin para que se adapte al ISAM de texto:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=Yes;'"

    > estoy tratando de adaptar un FileDialog para alimentar el path

    > de ubicacin del archivo que contiene los datos, uso el

    > FileDialog para cargar el nombre del archivo en un control

    > ListBox el cual tiene como ValueMember el Fullname del archivo.

    Fjate que en el parmetro 'Data Source' solamente se indica la ruta que contiene la carpeta donde se

    encuentra el archivo *.csv. Como dices que ests utilizando un cuadro de dilogo para seleccionar el

    archivo, me parece estupendo, pero en el parmetro 'Data Source' no puede aparecer el nombre del

    archivo; slo la ruta de la carpeta SIN EL NOMBRE DEL ARCHIVO DE TEXTO. As que tendrs que eliminar

    de la ruta completa el nombre del archivo.

    El nombre del archivo de texto, sin la ruta, se especifica en la consulta SQL de seleccin:

    ' Seleccionamos todos los registros de la Hoja1.

    '

    cmd.CommandText = "SELECT * FROM [Archivo#csv]"

    > Los campos de la hoja de Excel y de la tabla de SqlCompact

    > son los mismos? Tienen la misma estructura?

    >

    > Si, las tablas de mi Bd SqlCompact ya estan creadas y

    > tienen la misma estructura que el archivo de Excel.

    Lo que hace falta es que la primera lnea del archivo de texto CONTENGA EL NOMBRE DE LOS CAMPOS,

    porque de no ser as, vas a tener que mapear el objeto DataTable obtenido del archivo *.csv para que los

    nombres de los campos coincidan con los de la tabla de la base de SQL Server Compact, en cuyo caso te

    remito a la lectura del siguiente artculo:

    Cmo pasar datos entre diferentes orgenes de datos

    En ese artculo explico la misma tcnica que te coment en mi anterior respuesta para transferir datos de

    un origen de datos a otro. Si desde un primer momento hubieras indicado que se trataba de un archivo

    con extensin *.csv, lo mismo tendras ya el problema resuelto. ;-)

    Si en la primera fila del archivo de texto no aparecen los nombres de los campos, debers de especificar tal

    circunstancia en el parmetro HDR de las propiedades extendidas de la cadena de conexin:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=NO;'"

    Es decir:

    HDR=Yes --> La primera fila contiene el nombre de los campos

    HDR=No --> La primera fila NO contiene el nombre de los campos

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    3 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > Los obtuve del SqlServer, resultado de una cosulta de seleccion,

    > click derecho sobre el resultado mostrado, guardar resultado como?...

    >

    No hubiera estado de ms que eso mismo lo hubieses indicado desde un primer momento. :-(

    Si has obtenido los datos de esa manera, el archivo tiene una codificacin UTF-8, al menos esa es la

    codificiacin que yo obtenido al hacer una prueba, por tanto, es normal que no observes bien las palabras

    acentuadas cuando lo abres con el ISAM de texto del motor de datos Microsoft Jet o Microsoft ACE, da

    igual.

    Y la solucin ya te la he dado anteriormente: abre el archivo con el Bloc de Notas, seleccionas Guardar

    cmo, modificas la codificacin a ANSI, y lo guardas con otro nombre, o lo sobrescribes si as lo crees

    conveniente.

    > Ahora lo que me esta impidiendo "Actualizar" mi tabla, es el primer

    > registro que "NO SE CARGA", ya que la primer celda de mi control

    > DataGridView se muestra esa celda vacia, y como lo que vuelco a mi

    > BD es el DataTable, la regla de no permitir Nulos en mi Bd me manda

    > una excepcion.

    Como dices que has creado el archivo *.csv con la opcin de Guardar resultados cmo de la consulta

    ejecutada dentro del entorno de SQL Server, la primera lnea del archivo NO TIENE EL NOMBRE DE LAS

    COLUMNAS, por tanto, esa caracterstica se la tienes que especificar en la cadena de conexin:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=No;'"

    Es decir:

    HDR=Yes --> La primera fila contiene el nombre de los campos

    HDR=No --> La primera fila NO contiene el nombre de los campos

    Lo anterior ya te lo coment en otra respuesta que aparece ms arriba. Y los nombres de los campos por

    defecto sern F1, F2, F3, F4, F5, etc., por lo que tienes que mapear los nombres de los campos si deseas

    que se llamen de igual manera que los existentes en tu tabla de SQL Server Compact, porque de no

    hacerlo, va a ser imposible que puedas exportar los datos a tu base de SQL Server Compact, o a otra de

    cualquier otro tipo diferente. Para ello, tambin te coment que leyeras el siguiente artculo:

    Cmo pasar datos entre diferentes orgenes de datos

    Y si deseas que te aparezcan los nombres de los campos, entra en las Opciones de SQL Server

    Management Studio (men Herramientas --> Opciones...) y haz las modificaciones que aparecen en la

    siguiente imagen:

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    4 de 22 10/20/2014 4:07 PM

  • 1Iniciesesinparavotar

    Responder | Citar

    sbado, 06 de octubre de 2012 16:37

    Enrique M. Montejo (MVP) 70,850 Puntos

    "Luis_Escobar" escribi:

    > Con relacion a los Header's del reporte, antes de intentar

    > impotar los valores del archivo *.Csv, yo mismo ingreso los

    > nombres de las columnas manualmente ...

    En mi anterior mensaje te he comentado lo que tienes que hacer para que los nombres de los campos

    aparezcan automticamente en el archivo de texto creado desde SQL Server Management Studio.

    > ... y los nombre tal cual como se llaman en la Bd a la cual

    > pretendo migrar, sin que esto resuelva mi problema ...

    El problema que tienes con el archivo de texto entiendo que solamente es LA CODIFICIACIN QUE

    TIENE, porque abrirlo parece ser que lo abres con el cdigo que te indiqu. Se vern mal las palabras

    acentuadas, pero lo que es leer los datos se leen, mal pero se leen, por tanto, el cdigo fuente es correcto.

    Lo que tienes que hacer es modificar la codificacin del archivo para que ste tenga la codificacin ANSI,

    que es el valor que por defecto tiene el ISAM de texto en el parmetro CharacterSet de la clave del registro

    de Windows que te indiqu, y observars cmo aparecen correctamente las palabras con acentos.

    Sigo sin poder ver el contenido del archivo de texto, aunque sean las TRES PRIMERAS LNEAS, para

    intentar averiguar el motivo de que no se carge la primera lnea.

    Enrique Martnez

    [MS MVP - VB]

    Nota informativa: La informacin contenida en este mensaje, as como el cdigo fuente incluido en el

    mismo, se proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted

    asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo recomendado o sugerido en el presente

    mensaje.

    Si esta respuesta le ha resultado til, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instruccin Option Strict.

    Editado Enrique M. Montejo MVP, Moderator sbado, 06 de octubre de 2012 16:53

    Marcado como respuesta Luis_Escobar lunes, 08 de octubre de 2012 21:14

    Todas las respuestas

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    5 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    mircoles, 03 de octubre de 2012 6:45

    Enrique M. Montejo (MVP) 70,850 Puntos

    "Luis_Escobar" pregunt:

    > Alguien sabe como puedo importar datos de una hoja

    > de excel 2010 a unas tablas almacenadas en una Bd

    > SqlCompact 3.5 ?

    Los campos de la hoja de Excel y de la tabla de SqlCompact son los mismos? Tienen la misma

    estructura?

    Si las estructuras de las tablas son diferentes, escribe en tu mensaje los nombres de los campos de la hoja

    de Excel y los de la tabla de SqlCompact cuyos datos quieres pasar de Excel a SqlCompact.

    Respndeme a las preguntas y ver lo que se puede hacer. Sera aconsejable que la tabla de SqlCompact

    existiera en la base de datos antes de efectuar la exportacin de datos.

    Enrique Martnez

    [MS MVP - VB]

    Nota informativa: La informacin contenida en este mensaje, as como el cdigo fuente incluido en el

    mismo, se proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted

    asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo recomendado o sugerido en el presente

    mensaje.

    Si esta respuesta le ha resultado til, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instruccin Option Strict.

    Editado Enrique M. Montejo MVP, Moderator mircoles, 03 de octubre de 2012 6:49

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    6 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    Para no demorar mucho la respuesta, te voy a decir lo que tienes que hacer para pasar los datos de Excel a

    tu base de SQL Server Compact; despus, lo mismo es cuestin de "limar" un poco el cdigo.

    Una de las ventajas que tienen los objetos DataTable es que estos son independientes de cualquier origen

    de datos. Cuando tu rellenas de datos un objeto DataTable, estos datos residen en memoria y no

    dependen del origen de datos del cual los has tomado.

    Posteriormente, cuando desees actualizar el origen de datos con los datos existentes actualmente en el

    objeto DataTable, se le pasa ste objeto al mtodo Update de un adaptador de datos debidamente

    configurado. Pues aqu es donde est la clave de todo; en el adaptador de datos que debes de

    configurar para actualizar tu tabla de la base de SQL Server Compact.

    En resumidas cuentas. Tienes que rellenar un objeto DataTable con los datos de la hoja de Excel, y pasarle

    ese objeto al mtodo Update de un objeto SqlCeDataAdapter correctamente configurado.

    Para obtener el objeto DataTable con los datos de tu libro de Excel 2010, bien te puede servir la siguiente

    funcin:

    Imports System.Data.OleDb

    Imports System.Data.SqlServerCe

    Private Function GetDataFromExcel() As DataTable

    Try

    ' Configuramos la conexin con el libro de trabajo de Excel.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\Mis documentos\Libro1.xlsx;" & _

    "Extended Properties='Excel 12.0 Xml;HDR=Yes;'"

    Using cnn As New OleDbConnection(connString)

    Dim cmd As OleDbCommand = cnn.CreateCommand()

    ' Seleccionamos todos los registros de la Hoja1.

    '

    cmd.CommandText = "SELECT * FROM [Hoja1$]"

    ' Creamos y configuramos el adaptador de datos.

    '

    Dim da As New OleDbDataAdapter(cmd)

    ' Creamos un nuevo objeto DataTable.

    '

    Dim dt As New DataTable("Hoja1")

    ' Rellenamos el objeto DataTable.

    '

    da.Fill(dt)

    ' Devolvemos el objeto DataTable.

    '

    Return dt

    End Using

    Catch

    Throw

    End Try

    End Function

    Si observas que no te toma bien los datos de la hoja de Excel, aade el parmetro IMEX=1 a las

    propiedades extendidas de la cadena de conexin:

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    7 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    mircoles, 03 de octubre de 2012 19:15

    Luis_Escobar Softtek 12,265 Puntos

    Enrique una disculpa por mi respuesta tan tarda a tus preguntas:

    igual y el ejemplo que me regalas me servir creo que no esta dems responderte.

    Los campos de la hoja de Excel y de la tabla de SqlCompact son los mismos? Tienen la misma estructura?

    Si, las tablas de mi Bd SqlCompact ya estan creadas y tienen la misma estructura que el archivo de Excel.

    Analizo a detalle el ejemplo y comento como me fue!

    Gracias!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    0Iniciesesinparavotar

    Responder | Citar

    jueves, 04 de octubre de 2012 0:09

    Luis_Escobar Softtek 12,265 Puntos

    Enrique:

    Antes que atacarte con preguntas como siempre, quiero agradecerte por todas tus atenciones tanto para

    este caso como para los muchos temas pasados en los cuales he recibido ayuda tuya.

    En base al cdigo que me proporcionas, estoy tratando de adaptar un FileDialog para alimentar el path

    de ubicacin del archivo que contiene los datos, uso el FileDialog para cargar el nombre del archivo en un

    control ListBox el cual tiene como ValueMember el Fullname del archivo.

    Despus por medio de un botn tomo el Item Seleccionado y trato de llenar el DataTable pero me dice

    que:

    "La tabla externa no tiene el formato esperado"

    Estoy tratando de importar un archivo .Csv y en esta seccin de cdigo es donde me manda el error:

    Private Sub procesar_Click(sender As System.Object, e As System.EventArgs) Handles procesar.Click

    If (ListBox2.SelectedItems.Count = 0) Then Return

    Dim cadenaconexion As String = String.Format( _

    "Provider = Microsoft.ACE.OLEDB.12.0;" & _

    "Extended Properties = 'Excel 12.0 Xml;HDR=Yes;';" & _

    "Data Source = {0}", ListBox2.SelectedValue)

    'Try

    Using cnn As New OleDbConnection(cadenaconexion)

    Dim sql As String = "SELECT * FROM [1_Aguascalientes$]"

    Dim da As New OleDbDataAdapter(sql, cnn)

    Dim dt As New DataTable()

    da.Fill(dt)'Aqui es donde me manda el mensaje

    DataGridView1.DataSource = dt

    End Using

    'Catch ex As Exception

    ' ' Se ha producido un error.

    ' MessageBox.Show(ex.Message)

    'End Try

    End Sub

    Sigo agradecido enormemente por el seguimiento a mis casos...

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    8 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > "La tabla externa no tiene el formato esperado"

    >

    > Estoy tratando de importar un archivo .Csv y en esta seccin

    > de cdigo es donde me manda el error:

    Luis, un archivo con extensin *.csv NO ES UN ARCHIVO DE EXCEL; se podr abrir con Microsoft Excel, pero

    un archivo *.csv es un ARCHIVO DE TEXTO PLANO DELIMITADO POR COMAS, por lo que es normal que

    obtengas el error que ests obteniendo, ya que en lugar de utilizar el ISAM de Excel del motor de datos

    Microsoft ACE, tienes que utilizar el ISAM de texto de dicho motor de datos.

    Modifica la cadena de conexin para que se adapte al ISAM de texto:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=Yes;'"

    > estoy tratando de adaptar un FileDialog para alimentar el path

    > de ubicacin del archivo que contiene los datos, uso el

    > FileDialog para cargar el nombre del archivo en un control

    > ListBox el cual tiene como ValueMember el Fullname del archivo.

    Fjate que en el parmetro 'Data Source' solamente se indica la ruta que contiene la carpeta donde se

    encuentra el archivo *.csv. Como dices que ests utilizando un cuadro de dilogo para seleccionar el

    archivo, me parece estupendo, pero en el parmetro 'Data Source' no puede aparecer el nombre del

    archivo; slo la ruta de la carpeta SIN EL NOMBRE DEL ARCHIVO DE TEXTO. As que tendrs que eliminar

    de la ruta completa el nombre del archivo.

    El nombre del archivo de texto, sin la ruta, se especifica en la consulta SQL de seleccin:

    ' Seleccionamos todos los registros de la Hoja1.

    '

    cmd.CommandText = "SELECT * FROM [Archivo#csv]"

    > Los campos de la hoja de Excel y de la tabla de SqlCompact

    > son los mismos? Tienen la misma estructura?

    >

    > Si, las tablas de mi Bd SqlCompact ya estan creadas y

    > tienen la misma estructura que el archivo de Excel.

    Lo que hace falta es que la primera lnea del archivo de texto CONTENGA EL NOMBRE DE LOS CAMPOS,

    porque de no ser as, vas a tener que mapear el objeto DataTable obtenido del archivo *.csv para que los

    nombres de los campos coincidan con los de la tabla de la base de SQL Server Compact, en cuyo caso te

    remito a la lectura del siguiente artculo:

    Cmo pasar datos entre diferentes orgenes de datos

    En ese artculo explico la misma tcnica que te coment en mi anterior respuesta para transferir datos de

    un origen de datos a otro. Si desde un primer momento hubieras indicado que se trataba de un archivo

    con extensin *.csv, lo mismo tendras ya el problema resuelto. ;-)

    Si en la primera fila del archivo de texto no aparecen los nombres de los campos, debers de especificar tal

    circunstancia en el parmetro HDR de las propiedades extendidas de la cadena de conexin:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=NO;'"

    Es decir:

    HDR=Yes --> La primera fila contiene el nombre de los campos

    HDR=No --> La primera fila NO contiene el nombre de los campos

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    9 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    viernes, 05 de octubre de 2012 1:45

    Luis_Escobar Softtek 12,265 Puntos

    Enrique.

    En este momento realizo los cambios necesarios. Gracias regreso para comentar como me fue... :)

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    0Iniciesesinparavotar

    Responder | Citar

    viernes, 05 de octubre de 2012 5:57

    Luis_Escobar Softtek 12,265 Puntos

    Hola Enrique:

    Estoy tratando de realizar unas pruebas de insercion con datos pequeos pero me marca un error:

    "No se puede cargar los componentes nativos de SQL Server Compact correspondientes al proveedor

    ADO.NET de la versin 8080. Instale la versin correcta de SQL Server Compact. Vea el artculo 974247 de la

    KB para obtener ms detalles."

    En esta linea es donde me detiene el codigo:

    "Using cnn As New

    SqlCeConnection(ConfigurationManager.ConnectionStrings("Exportar_ExcelaBd.My.MySettings.Setting1").ToSt

    ring())"

    Tendrs alguna idea del porque de este mensaje?

    Otra de las cosas que me estn sucediendo:

    Muestro las filas cargadas al DataTable a un Control DaTaGridView pero:

    * El primer registro que conforma mi primer celda del archivo csv, no me lo carga, simplemente me

    aparece una celda en blanco, solo la primer celda de la primer columna, el resto si me aparece.

    * Aquellos valores que contienen un acento me cambia su valor, por ejemplo:

    Valor en el archivo Csv = Comond

    Valor mostrado en DGV = Comond

    Muchas gracias por toda tu ayuda!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Editado Luis_Escobar viernes, 05 de octubre de 2012 6:00

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    10 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > Estoy tratando de realizar unas pruebas de insercion

    > con datos pequeos pero me marca un error:

    >

    > "No se puede cargar los componentes nativos de SQL

    > Server Compact correspondientes al proveedor ADO.NET

    > de la versin 8080. Instale la versin correcta de

    > SQL Server Compact. Vea el artculo 974247 de la KB

    > para obtener ms detalles."

    >

    > En esta linea es donde me detiene el codigo:

    >

    > "Using cnn As New SqlCeConnection( _

    > ConfigurationManager.ConnectionStrings( _

    > "Exportar_ExcelaBd.My.MySettings.Setting1").ToString())"

    >

    > Tendrs alguna idea del porque de este mensaje?

    Luis, te comento que no soy "adivino" para averiguar el proveedor de datos invariable que aparece en la

    cadena de conexin con nombre del archivo de configuracin de tu aplicacin.

    La versin del proveedor invariable de SQL Server Compact que debers de especificar en tu archivo

    app.config, deber de corresponderse con la versin de SQL Server Compact que tenga la base de datos

    que vayas a utilizar, y que se supone est instalada correctamente en el equipo.

    Para la versin 3.5 de SQL Server Compact, una tpica cadena de conexin con nombre podra ser:

    Y para su versin 4.0:

    Observas el valor del parmetro 'providerName'? Ese es el valor del proveedor de datos invariable,

    aunque no creo que ests utilizando un proveedor comn de datos. Me refiero a que estars utilizando los

    objetos propios de la biblioteca de SQL Server Compact: SqlConnectionCe, SqlCommandCe, etc., en lugar

    de utilizar DbConnection, DbCommand, etc.

    Yo lo nico que te puedo decir es que tendrs que referenciar en tu proyecto de Visual Basic la versin de

    SQL Server Compact que se corresponda con la versin de la base de datos que vas a utilizar.

    No obstante, chale un vistazo al artculo de la Base del Conocimiento de Microsoft que se indica en el

    mensaje de error:

    REVISIN: Recibe un mensaje de error al ejecutar una aplicacin basada en SQL Server Compact 3.5

    despus de instalar la versin de 32 bits de SQL Server Compact Edition 3.5 Service Pack 2 en un equipo x

    64

    > Otra de las cosas que me estn sucediendo:

    >

    > * El primer registro que conforma mi primer

    > celda del archivo csv, no me lo carga

    > simplemente me aparece una celda en blanco.

    >

    > * Para ver si me carga bien los datos,

    > establezco el DataSource de un control

    > DataGridView el DataTable obtenido pero

    > me doy cuenta que aquellos valores que

    > contiene un acento me cambia su valor, por ejemplo:

    >

    > Valor en el archivo Csv = Comond

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    11 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    viernes, 05 de octubre de 2012 7:00

    Luis_Escobar Softtek 12,265 Puntos

    Gracias Enrique:

    Revise el Regedit y el valor que tengo por Default es "ANSI", no obstante se lo cambie por "OEM" compile

    mi proyecto corri y despues regrese el valor "ANSI" y el problema de los acentos aun persiste.

    Con respecto al tema de proveedor de Bd, te comento que en App.Config tengo esto;

    Bueno, si crees que el tema ya resulta demasiado redundante, te agradesco de sobremanera tu ayuda,

    seguire buscando la solucion de este problema, solo que por hoy ya fue suficiente me quedan 4 hrs para

    descansar. Pero prometo leer los temas que me sugieres.

    Gracias marco desde ya tus respuestas!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Editado Luis_Escobar viernes, 05 de octubre de 2012 7:01

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    12 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    Responder | Citar

    viernes, 05 de octubre de 2012 7:58

    Enrique M. Montejo (MVP) 70,850 Puntos

    "Luis_Escobar" escribi:

    > Revise el Regedit y el valor que tengo por Default es "ANSI",

    > no obstante se lo cambie por "OEM" compile mi proyecto corri

    > y despues regrese el valor "ANSI" y el problema de los

    > acentos aun persiste.

    Estamos hablando de los datos existentes en el archivo con extensin *.csv. Si es as, ignoro ya lo que

    puede estar pasando.

    > Con respecto al tema de proveedor de Bd, te comento que

    > en App.Config tengo esto;

    >

    > ... providerName="Microsoft.SqlServerCe.Client.3.5" />

    El parmetro 'providerName' est mal. Para la versin 3.5 de SQL Server Compact tiene que ser:

    ... providerName="System.Data.SqlServerCe.3.5" />

    Pero insisto que esto slo afectara si en tu aplicacin ests trabajando con un proveedor de datos comun,

    es decir, con un objeto DBConnection.

    Si has referenciado en tu proyecto la biblioteca de SQL Server Compact correspondiente a la versin 3.5, y

    ests utilizando los objetos del espacio de nombres System.Data.SqlServerCe, de poco sirve que en la

    cadena de conexin del archivo app.config aparezca un valor para el parmetro 'providerName'.

    Has sacado algo en claro del artculo de la Base del Conocimiento?

    Enrique Martnez

    [MS MVP - VB]

    Nota informativa: La informacin contenida en este mensaje, as como el cdigo fuente incluido en el

    mismo, se proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted

    asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo recomendado o sugerido en el presente

    mensaje.

    Si esta respuesta le ha resultado til, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instruccin Option Strict.

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    13 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    viernes, 05 de octubre de 2012 16:46

    Luis_Escobar Softtek 12,265 Puntos

    Estamos hablando de los datos existentes en el archivo con extensin *.csv. Si es as, ignoro ya lo

    que puede estar pasando.

    Mmmm, en el archivo los datos se muestran bien, acentos donde van acentos, el problema radica al

    momento de volcar esos datos al datatable para despues mostrarlo en un DataGridView, es en este ultimo

    donde ya no se visualizan correctamente las palabras que llevan acentos.

    Has sacado algo en claro del artculo de la Base del Conocimiento?

    Todo lo que he leido hasta el momento a punta a que tengo una mala instalacion del SQlCompact o que

    lo estoy usando en un aquipo de 64 bits, pero te comento que tengo otras aplicaciones funcionando con

    la misma version del sql 3.5 y funcionan a la perfeccion con las tipicias instrucciones (select, insert, delete,

    update) ademas de que mi equipo es de 32 bits. De ahi en fuera no he encontrado algo mas concreto.

    Aun asi seguire buscando hasta dar con el clavo!

    Gracias!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    14 de 22 10/20/2014 4:07 PM

  • 3Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > Mmmm, en el archivo los datos se muestran bien, acentos donde van

    > acentos, el problema radica al momento de volcar esos datos al

    > datatable para despues mostrarlo en un DataGridView, es en este

    > ultimo donde ya no se visualizan correctamente las palabras que llevan acentos.

    En el archivo de texto pueden verse correctamente las palabras acentuadas, pero con qu codificacin se

    guardaron? ANSI, Unicode, UTF-8?

    Salvo que ests utilizando unos caracteres inexistentes en el idioma espaol, ingls, francs, alemn,

    italiano, y de otros lenguajes similares, debes de procurar que la codificacin del archivo de texto sea ANSI.

    Para salir de dudas, vete de nuevo a la clave del registro que te indiqu anteriormente, y especifica el valor

    Unicode al parmetro CharacterSet.

    Si en tu sistema operativo tienes una configuracin regional de espaol, lo mismo te aparece ahora el

    siguiente mensaje de error:

    El separador de campos de la especificacin de archivo de texto

    coincide con el separador decimal o el delimitador de texto.

    En cuyo caso tendrs que aplicar la tcnica que explico en el siguiente artculo:

    Cmo leer un archivo de texto delimitado por comas

    Otra cosa que tambin puedes hacer para asegurarte que la codificacin es ANSI es editar el archivo con el

    Bloc de Notas, y seleccionas el men Archivo --> Guardar cmo.

    Si en el control ComboBox de codificacin te aparece Unicode, est claro que el archivo tiene esa

    codificacin, por lo que dicha codificacin es la que debers de utilizar cuando desees abrir el archivo de

    texto delimitado con el ISAM de los motores Microsoft Jet o Microsoft ACE (CharacterSet = Unicode).

    Selecciona la codificacin ANSI y guarda el archivo CON OTRO NOMBRE, para no sobrescribir el archivo

    original, e intenta de nuevo abrir el nuevo archivo creado procurando que en el parmetro CharacterSet

    del registro de Windows tenga el valor ANSI, que es su valor por defecto.

    > Todo lo que he leido hasta el momento a punta a que tengo una

    > mala instalacion del SQlCompact o que lo estoy usando en un

    > equipo de 64 bits, pero te comento que tengo otras aplicaciones

    > funcionando con la misma version del sql 3.5 y funcionan a la

    > perfeccion con las tipicias instrucciones (select, insert,

    > delete, update) ademas de que mi equipo es de 32 bits.

    Y la base de datos se cre con la versin 3.5?

    Desde luego es muy raro el error que ests obteniendo, porque el equipo donde ahora mismo te estoy

    escribiendo tambin es de 32 bits, y tengo instalado tanto la versin 3.5 como 4.0 de SQL Server Compact,

    y desde luego no me aparece ningn mensaje de error cuando intento pasar datos de un archivo de texto

    delimitado por comas a una tabla de SQL Server Compact, bien con formato 3.5 o con formato 4.0.

    Desde luego, no tengo ni la ms mnima idea del motivo que obtengas ese mensaje de error.

    Qu versin de SQL Server Compact tienes referenciada en el proyecto donde ests teniendo los

    problemas? Puedes escribir el cdigo que ests ejecutando para conectarte con la base de datos y llamar

    al mtodo Update del adaptador de datos? Has corregido los valores de la cadena de conexin que

    aparecen en el archivo de configuracin de tu aplicacin?

    Enrique Martnez

    [MS MVP - VB]

    Nota informativa: La informacin contenida en este mensaje, as como el cdigo fuente incluido en el

    mismo, se proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted

    asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo recomendado o sugerido en el presente

    mensaje.

    Si esta respuesta le ha resultado til, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instruccin Option Strict.

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    15 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    sbado, 06 de octubre de 2012 12:53

    Luis_Escobar Softtek 12,265 Puntos

    Enrique buenos dias:

    Para lo del archivo delimitado por comas:

    con qu codificacin se guardaron? ANSI, Unicode, UTF-8?

    Los obtuve del SqlServer, resultado de una cosulta de seleccion, click derecho sobre el resultado

    mostrado, guardar resultado como?...

    Si en el control ComboBox de codificacin te aparece Unicode, est claro que el archivo tiene esa

    codificacin, por lo que dicha codificacin es la que debers de utilizar cuando desees abrir el

    archivo de texto delimitado con el ISAM de los motores Microsoft Jet o Microsoft ACE (CharacterSet

    = Unicode).

    Para mi que va por este lado, ya que en el archivo los datos se muestran todos correctamentes, no siendo

    asi en el control DataGridView...

    En cuanto a la BD:

    Y la base de datos se cre con la versin 3.5?

    Si, se diseo en la version 3.5.

    Aunque te comento que este tema ya quedo resuelto al menos ya se lo que tengo que hacer, que es,

    cambiar mi diseo a un formulario limpio, lo mismo con la codificacion, crear una nueva referencia a la

    libreria Import System.Data.SqlServerCe, una nueva conexion, y Vual!!! Ayer hice eso y tuve una conexion

    exitosa!!!

    Ahora lo que me esta impidiendo "Actualizar" mi tabla, es el primer registro que "NO SE CARGA", ya que

    la primer celda de mi control DataGridView se muestra esa celda vacia, y como lo que vuelco a mi BD es el

    DataTable, la regla de no permitir Nulos en mi Bd me manda una excepcion.

    En resumen:

    Problema con la Bd -------> ok

    Problema con los Acentros ------->Pendiente

    Problema con el primer registro ------>Pendiente

    Creo, que decir gracias representa muy poco para expresar mi "agradecimiento" por tu ayuda y

    seguimiento a este caso, no obstante te lo dire una vez ms.

    Gracias!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    16 de 22 10/20/2014 4:07 PM

  • 2Iniciesesinparavotar

    "Luis_Escobar" escribi:

    > Los obtuve del SqlServer, resultado de una cosulta de seleccion,

    > click derecho sobre el resultado mostrado, guardar resultado como?...

    >

    No hubiera estado de ms que eso mismo lo hubieses indicado desde un primer momento. :-(

    Si has obtenido los datos de esa manera, el archivo tiene una codificacin UTF-8, al menos esa es la

    codificiacin que yo obtenido al hacer una prueba, por tanto, es normal que no observes bien las palabras

    acentuadas cuando lo abres con el ISAM de texto del motor de datos Microsoft Jet o Microsoft ACE, da

    igual.

    Y la solucin ya te la he dado anteriormente: abre el archivo con el Bloc de Notas, seleccionas Guardar

    cmo, modificas la codificacin a ANSI, y lo guardas con otro nombre, o lo sobrescribes si as lo crees

    conveniente.

    > Ahora lo que me esta impidiendo "Actualizar" mi tabla, es el primer

    > registro que "NO SE CARGA", ya que la primer celda de mi control

    > DataGridView se muestra esa celda vacia, y como lo que vuelco a mi

    > BD es el DataTable, la regla de no permitir Nulos en mi Bd me manda

    > una excepcion.

    Como dices que has creado el archivo *.csv con la opcin de Guardar resultados cmo de la consulta

    ejecutada dentro del entorno de SQL Server, la primera lnea del archivo NO TIENE EL NOMBRE DE LAS

    COLUMNAS, por tanto, esa caracterstica se la tienes que especificar en la cadena de conexin:

    ' Configuramos la conexin con el archivo de texto delimitado.

    '

    Dim connString As String = _

    "Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Data Source=C:\NombreCarpeta;" & _

    "Extended Properties='TEXT;HDR=No;'"

    Es decir:

    HDR=Yes --> La primera fila contiene el nombre de los campos

    HDR=No --> La primera fila NO contiene el nombre de los campos

    Lo anterior ya te lo coment en otra respuesta que aparece ms arriba. Y los nombres de los campos por

    defecto sern F1, F2, F3, F4, F5, etc., por lo que tienes que mapear los nombres de los campos si deseas

    que se llamen de igual manera que los existentes en tu tabla de SQL Server Compact, porque de no

    hacerlo, va a ser imposible que puedas exportar los datos a tu base de SQL Server Compact, o a otra de

    cualquier otro tipo diferente. Para ello, tambin te coment que leyeras el siguiente artculo:

    Cmo pasar datos entre diferentes orgenes de datos

    Y si deseas que te aparezcan los nombres de los campos, entra en las Opciones de SQL Server

    Management Studio (men Herramientas --> Opciones...) y haz las modificaciones que aparecen en la

    siguiente imagen:

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    17 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    sbado, 06 de octubre de 2012 16:23

    Luis_Escobar Softtek 12,265 Puntos

    Hola Enrique:

    De haber sabido el eso pudiera ser clave para resolver mi problema, creeme que lo hubiera publicado

    desde el inicio, pero no crei que el problema pudiera derivar desde el origen del reporte... :(

    Con relacion a los Header's del reporte, antes de intentar impotar los valores del archivo *.Csv, yo mismo

    ingreso los nombres de las columnas manualmente y los nombre tal cual como se llaman en la Bd a la cual

    pretendo migrar, sin que esto resuelva mi problema y no decir del "HDR = YES" de la cadena de conexion.

    Con respecto al articulo que me recomendaste "Cmo pasar datos entre diferentes orgenes de datos" de

    ahi tomer la mayoria del codigo para poder leer el archivo.

    Por el momento me es imposible probar lo que me proporcionas, ya que he tenido una jornada laboral de

    ya mas de 14 hrs y al parecer se extendera unas cuantas hrs mas. Pero te prometo que tan pronto pueda

    entregar mi trabajo y descansar unas hrs, hare los cambios pertinentes en mi aplicacion y regreso para

    comentar como me fue...

    Tratare de ser mas explicito en mis futuras consultas... :-(

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    18 de 22 10/20/2014 4:07 PM

  • 1Iniciesesinparavotar

    Responder | Citar

    sbado, 06 de octubre de 2012 16:37

    Enrique M. Montejo (MVP) 70,850 Puntos

    "Luis_Escobar" escribi:

    > Con relacion a los Header's del reporte, antes de intentar

    > impotar los valores del archivo *.Csv, yo mismo ingreso los

    > nombres de las columnas manualmente ...

    En mi anterior mensaje te he comentado lo que tienes que hacer para que los nombres de los campos

    aparezcan automticamente en el archivo de texto creado desde SQL Server Management Studio.

    > ... y los nombre tal cual como se llaman en la Bd a la cual

    > pretendo migrar, sin que esto resuelva mi problema ...

    El problema que tienes con el archivo de texto entiendo que solamente es LA CODIFICIACIN QUE

    TIENE, porque abrirlo parece ser que lo abres con el cdigo que te indiqu. Se vern mal las palabras

    acentuadas, pero lo que es leer los datos se leen, mal pero se leen, por tanto, el cdigo fuente es correcto.

    Lo que tienes que hacer es modificar la codificacin del archivo para que ste tenga la codificacin ANSI,

    que es el valor que por defecto tiene el ISAM de texto en el parmetro CharacterSet de la clave del registro

    de Windows que te indiqu, y observars cmo aparecen correctamente las palabras con acentos.

    Sigo sin poder ver el contenido del archivo de texto, aunque sean las TRES PRIMERAS LNEAS, para

    intentar averiguar el motivo de que no se carge la primera lnea.

    Enrique Martnez

    [MS MVP - VB]

    Nota informativa: La informacin contenida en este mensaje, as como el cdigo fuente incluido en el

    mismo, se proporciona COMO EST, sin garantas de ninguna clase, y no otorga derecho alguno. Usted

    asume cualquier riesgo al poner en prctica, utilizar o ejecutar lo recomendado o sugerido en el presente

    mensaje.

    Si esta respuesta le ha resultado til, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instruccin Option Strict.

    Editado Enrique M. Montejo MVP, Moderator sbado, 06 de octubre de 2012 16:53

    Marcado como respuesta Luis_Escobar lunes, 08 de octubre de 2012 21:14

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    19 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    lunes, 08 de octubre de 2012 21:23

    Luis_Escobar Softtek 12,265 Puntos

    Enrique:

    Siguiendo tus sugerencias de cambiar la configuracion de mi SqlServer, ademas de cambiar la codificacion

    del archivo *Csv de UTF-8 a ANSI por fin logre leer los archivos correctamente, sin problemas con las

    comas y sin omitir el primer registro.

    Probr el resto de la codificacion y funciono en un archivo que contaba con 2565 registros "actualizando" la

    tabla indicada.

    El unico pdetalle es que al querer hacer un proceso con 119,500 registros, solo puedo actualizar 221 y se

    demoro casi 2 hrs. Entiendo que esto ya es problema de la cantidad de registros que contenga mi archivo

    *CSV.

    Muchas gracias por tu tiempo, conocimiento y accesibilidad!

    10-09-2012 (para ingresar los mas de 100,000 registros recorro las filas de DataGridView y voy insertando

    a la tabla y todo va OK)

    De nuevo muchas gracias!

    Saludos desde Monterrey, N.L. Mxico Luis Escobar :D

    Editado Luis_Escobar martes, 09 de octubre de 2012 18:16

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    20 de 22 10/20/2014 4:07 PM

  • 0Iniciesesinparavotar

    Responder | Citar

    sbado, 09 de febrero de 2013 1:02

    PaulithaRubi 0 Puntos

    Hola... gracias por el link... pero me sige marcando error en la conexion ya cambio varias veces y aun me

    sige marcando el error...

    me por drias a yudar a checarla...

    Private Function GetDataFromExcel() As DataTable

    Try

    ' Configuramos la conexin con el libro de trabajo de Excel.

    '

    Dim connString As String = String.Format("Provider=Microsoft.ACE.OLEDB.12.0;" & _

    "Extended Properties='TEXT;HDR=Yes;IMEX=1;';" & _

    "Data Source={0}", TextBox1.Text)

    Using cnn As New OleDbConnection(connString)

    Dim cmd As OleDbCommand = cnn.CreateCommand()

    ' Seleccionamos todos los registros de la Hoja1.

    '

    cmd.CommandText = "SELECT * FROM [Hoja$]"

    ' Creamos y configuramos el adaptador de datos.

    '

    Dim da As New OleDbDataAdapter(cmd)

    ' Creamos un nuevo objeto DataTable.

    Dim dt As New DataTable("Hoja1")

    ' Rellenamos el objeto DataTable.

    '

    da.Fill(dt)

    ' Devolvemos el objeto DataTable.

    '

    Return dt

    End Using

    Catch

    Throw

    End Try

    End Function

    Te lo agradecere muchoooooooooooooo..

    Editado PaulithaRubi sbado, 09 de febrero de 2013 1:04

    Centros de desarrollo

    Windows

    Recursos de aprendizaje

    Microsoft Virtual Academy

    Channel 9

    Comunidad

    Foros

    Blogs

    Soporte tcnico

    Autosoporte

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    21 de 22 10/20/2014 4:07 PM

  • Office

    Visual Studio

    Nokia

    Microsoft Azure

    Ms...

    Puentes de interoperabilidad

    MSDN Magazine

    Codeplex

    Programas

    BizSpark (para nuevas empresas)

    DreamSpark

    Imagine Cup

    Espaa (Espaol) Boletn Privacidad y cookies Trminos de uso Marcas comerciales 2014 Microsoft

    Importar datos de Excel a SqlCompact https://social.msdn.microsoft.com/Forums/es-ES/2432bd49-508a-4bf3-a...

    22 de 22 10/20/2014 4:07 PM