Si alguien me pudiera ayudar!
Gracias
> estoy intentando hacer un programa con VB .NET 2005 y necesitaria que me
> ayudasen. Quiero importar registros a la base de datos desde un archivo
> .txt
> mediante codigo pero no me aclaro.
Hola:
Si tu no te aclaras, menos nos vamos a aclarar nosotros. :-)
¿De qué tipo de base de datos estamos hablando? ¿Cual es el carácter
delimitador de los campos en el archivo de texto? ¿Qué idioma tienes
definido en la Configuración Regional de Windows?
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Un saludo
"SoftJaén" <grupo_n...@softjaen.es> escribió en el mensaje
news:EFC0DFAD-43C3-40C8...@microsoft.com...
> trabajo con SQLSERVER 2005, el caracter delimitador es el
> tabulador y el idioma predefinido es el español
Si trabajas con SQL Server, lo mejor que puedes hacer es ejecutar una
inserción masiva de registros mediante la instrucción BULK INSERT del
lenguaje T-SQL. Por ejemplo, si la primera fila de tu archivo de texto
contiene los nombres de los campos, ejecutarías la siguiente consulta T-SQL:
' Configuramos la conexión
'
Dim cnn As New SqlConnection( _
"Data Source=(local);" & _
"Integrated Security=SSPI")
' Construimos la consulta de inserción masiva, donde indicamos
' que la primera fila contiene el nombre de los campos, as¡
' como que el carácter delimitador de los campos es la
' tabulacion '\t'.
'
Dim sql As String = _
"BULK INSERT BaseDatos..NombreTabla " & _
"FROM 'C:\Carpeta\Archivo.txt' " & _
"WITH (" & _
"CODEPAGE = 'ACP'," & _
"FIRSTROW = 2," & _
"FIELDTERMINATOR = '\t'," & _
"ROWTERMINATOR = '\n')"
' Configuramos el comando.
'
Dim cmd As New SqlCommand(sql, cnn)
' Abrimos la conexión
'
cnn.Open()
' Ejecutamos el comando.
'
Dim n As Int32 = cmd.ExecuteNonQuery
' Mostramos el número de registros afectados.
'
MessageBox.Show(n.ToString)
' Cerramos la conexión
'
cnn.Close()
Si la primera fila del archivo de texto NO CONTIENE el nombre de los campos,
elimina de la consulta el parámetro FIRSTROW = 2.
"SoftJaén" <grupo_n...@softjaen.es> escribió en el mensaje
news:F5CF74C7-06F4-4D1B...@microsoft.com...
Asimismo, si la tabla tiene establecida una clave principal, obtendrás la
oportuna excepción si se intenta duplicar datos ya existentes en el campo
que conforma la clave. Asi que ... ¡Hay que tener cuidadito a la hora de
importar los datos! :-)