Foros del Web » Programación para mayores de 30 ;) » .NET »

Importar .TXT a SQL en C#

Estas en el tema de Importar .TXT a SQL en C# en el foro de .NET en Foros del Web. Hola a todos, estoy creando un programa en c# que me importe a una base una serie de archivos .txt. Lo que hago es que ...
  #1 (permalink)  
Antiguo 26/08/2010, 10:12
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Importar .TXT a SQL en C#

Hola a todos,

estoy creando un programa en c# que me importe a una base una serie de archivos .txt. Lo que hago es que el usuario selecciona un directorio donde están todos los archivos.

Estos archivos son renombrados a .txt y ahora necesito que me recorra el directorio y me guarde la info de cada archivo en sql. Todos los archivos tienen el mismo formato y los campos están separados por #.

El codigo que tengo hasta ahora es el siguiente:

public partial class Dirinfo : Form
{
public Dirinfo()
{
InitializeComponent();
}

private void bt_dir_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
txt_dir.Text = fbd.SelectedPath;
}
}

private void bt_vuelco_Click(object sender, EventArgs e)
{
DirectoryInfo di = new DirectoryInfo(txt_dir.Text);
FileInfo[] ficheros = di.GetFiles();
foreach (FileInfo f in ficheros)
{
f.CopyTo(txt_dir.Text + "\\" + f.Name + ".txt");
f.Delete();
}
}
}
  #2 (permalink)  
Antiguo 26/08/2010, 10:33
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 4 meses
Puntos: 22
Respuesta: Importar .TXT a SQL en C#

Te recomiendo que leas la documentación de la clase System.IO.StreamReader y también de la clase String, con eso ya deberias de resolver tu problema, una cosa más, para abrir los archivos no hace falta cambiarles la extensión a TXT te puedes ahorrar ese paso.

Saludos
  #3 (permalink)  
Antiguo 26/08/2010, 10:36
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Importar .TXT a SQL en C#

Les añado la extensión .txt ya que cuando se descomprimen no son archivos reconocidos por el sistema.
Necesito algo como esto:

Public Sub insertar_en_tabla()

Dim base As Database
Dim tabla As Recordset
Dim nombre As String
nombre = ""

Set base = CurrentDb

Set tabla = base.OpenRecordset("tablas")

tabla.MoveFirst
Do While tabla.EOF = False
nombre = tabla.Fields(1)

DoCmd.TransferText acImportDelim, "IMPORTACION ARCHIVO CMT", "temporal", nombre, False


DoCmd.RunSQL ("INSERT INTO NUEVA ( CONMODIF, NOMBRE, APELLIDO, APELLIDO2, ABCALLE, NUMERO, CPPOSTAL, POBLACION, PROVINCIA, TELEFONO, ABVENTA, tabla )SELECT temporal.CONMODIF, temporal.NOMBRE, temporal.APELLIDO, temporal.APELLIDO2, temporal.ABCALLE, temporal.NUMERO, temporal.CPPOSTAL, temporal.POBLACION, temporal.PROVINCIA, temporal.TELEFONO, temporal.ABVENTA, '" & nombre & "' AS Expr1 FROM temporal;")
DoCmd.RunSQL ("delete * from temporal")

tabla.MoveNext
Loop


End Sub

Este código es el que tengo en un módulo de Access para importar los archivos a una tabla access.
  #4 (permalink)  
Antiguo 26/08/2010, 10:36
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Importar .TXT a SQL en C#

Les añado la extensión .txt ya que cuando se descomprimen no son archivos reconocidos por el sistema.
Necesito algo como esto:

Public Sub insertar_en_tabla()

Dim base As Database
Dim tabla As Recordset
Dim nombre As String
nombre = ""

Set base = CurrentDb

Set tabla = base.OpenRecordset("tablas")

tabla.MoveFirst
Do While tabla.EOF = False
nombre = tabla.Fields(1)

DoCmd.TransferText acImportDelim, "IMPORTACION ARCHIVO CMT", "temporal", nombre, False


DoCmd.RunSQL ("INSERT INTO NUEVA ( CONMODIF, NOMBRE, APELLIDO, APELLIDO2, ABCALLE, NUMERO, CPPOSTAL, POBLACION, PROVINCIA, TELEFONO, ABVENTA, tabla )SELECT temporal.CONMODIF, temporal.NOMBRE, temporal.APELLIDO, temporal.APELLIDO2, temporal.ABCALLE, temporal.NUMERO, temporal.CPPOSTAL, temporal.POBLACION, temporal.PROVINCIA, temporal.TELEFONO, temporal.ABVENTA, '" & nombre & "' AS Expr1 FROM temporal;")
DoCmd.RunSQL ("delete * from temporal")

tabla.MoveNext
Loop


End Sub

Este código es el que tengo en un módulo de Access para importar los archivos a una tabla access.
  #5 (permalink)  
Antiguo 26/08/2010, 10:39
Avatar de gedarufi  
Fecha de Ingreso: diciembre-2008
Ubicación: Colombia
Mensajes: 540
Antigüedad: 15 años, 4 meses
Puntos: 22
Respuesta: Importar .TXT a SQL en C#

No importa que el formato no sea reconocido por el sistema, no hace falta que hagas la conversión a TXT, para la conexión con la base de datos puedes mirar el Namespace System.Data y System.Data.Common.

Saludos
  #6 (permalink)  
Antiguo 26/08/2010, 11:43
 
Fecha de Ingreso: julio-2010
Mensajes: 93
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Importar .TXT a SQL en C#

Lo que necesito es algo como el código que tengo en access. Lo bueno del código de access es que solo me carga en la base de access los campos que yo quiero, no todos los del archivo de texto.



Se como funciona la conexión a sql y System.IO, el problema es que no logro cargar en sql los campos que yo quiero, no todos los del archivo.

Etiquetas: sql, txt
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.