Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/08/2008, 21:05
Silm
 
Fecha de Ingreso: mayo-2008
Mensajes: 4
Antigüedad: 16 años, 9 meses
Puntos: 0
Problema con carga de datos desde TXT

Hola a todos! Espero me puedan con el siguiente problema, de verdad se los agradecería bastante, este es el asunto:

Tengo un WinForms (VS 2005) que lee los registros de un archivo de texto (.txt) y los inserta en una base de datos (SQL Server 2000), dichos registros estan delimitados por default por una coma "," es decir:

21, 2, Nissan, Valle, 2008 cuyo INSERT sería INSERT INTO Tabla VALUES(21,2,'Nissan','Valle',2008) por mencionar un ejemplo...

Ahora bien, el problema viene cuando en algunos registros se encuentra esto:

21, 2, Nissan, "Agencia Automotriz, Valle S.A.", 2008 ****Se supone que lo que se encuentra entre comillas es un solo campo pero el sistema al detectar que hay una coma dentro de la cadena lo toma como un registro nuevo por lo tanto al hacer el INSERT marca el error que no corresponde el numero de campos con la estructura de la tabla.

Bien la respuesta mas fácil es cambiar de delimitador por otro caracter pero por alguna razón el usuario no quiere utilizar otro por lo que esa solución esta descartada, CUALQUIER OTRA SUGERENCIA SERÍA DE MUCHA UTILIDAD!

Aquí esta parte del código que estoy utilizando:

sr = New StreamReader(Archivo, New System.Text.UTF7Encoding)
Try
Dim variable As Integer = 0
linea = sr.ReadLine()
Do
variable = variable + 1
encodedBytes = utf8.GetBytes(linea)
decodedString = utf8.GetString(encodedBytes)
lineas += 1
registro = decodedString.Split(",")

For j As Integer = 0 To registro.Length - 1
campos = campos & "'" & registro(j) & "'" & ","
Next

campos = campos.Remove(campos.Length - 1)
status = Class1.Insert(campos, NombreTabla)

linea = sr.ReadLine()
Loop Until linea Is Nothing