[ Foro de C# ]

Insertar registros de un archivo TXT a una tabla Fox Pro con c#

04-Nov-2022 06:20
Invitado (Adrian)
0 Respuestas

hola,necesito de su apoyo en este caso, estoy tratando de realizar un programa con C# que tiene el objetivo de leer un archivo TXT e insertarlos a una tabla Fox Pro, ya logre insertar un registro pero solo lo he podido hacer con la primera linea , mi duda es como podria hacer para recorrer linea por linea e insertarlo en la tabla?, por el momento estableci "partes[0], partes1 .... hasta el Partes[4]" que solo me trae los valores de la primera linea y que se repite de acuerdo a la cantidad de lineas que hay en el txt , ademas considerar que cada linea tiene 5 datos separados por un "|" .

Mi archivo de texto contiene en total dos lineas que deben ser insertadas y son las siguientes:

Alerta_MantenimMecanicoG1|Aviso N° 10003 el CS_VIQMEL -AUSVN /n /n Area: PLTXT /n /n Equipo: CS_VIQMEL- EQUNR +” - ”+ EQKTX /n /n Trabajo: QMARTX /n /n Servicio: CS_VIQMEL -INGRP+” - ”+ INNAM /n /n Solicitante: SNAME /n /n Prioridad: PRIOKX /n /n Descripción Aviso: CS_VIQMEL- QMTXT|03/11/2022|16:51:32|PENDIENTE

Alerta_MantenimMecanicoG1|Aviso N° 20003 el CS_VIQMEL -AUSVN /n /n Area: PLTXT /n /n Equipo: CS_VIQMEL- EQUNR +” - ”+ EQKTX /n /n Trabajo: QMARTX /n /n Servicio: CS_VIQMEL -INGRP+” - ”+ INNAM /n /n Solicitante: SNAME /n /n Prioridad: PRIOKX /n /n Descripción Aviso: CS_VIQMEL- QMTXT|03/11/2022|16:51:32|PENDIENTE

Tabla FoxPro: Como pueden ver en la tabla logre realizar la insercion pero solo es la primera linea la que se inserto y ademas se repite por segunda vez, no me trae el aviso N"20003"


El codigo c# que estoy usando es el siguiente :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Data.OleDb;
using System.Text.RegularExpressions;
using System.Threading;

namespace LeerArchivoParaEnviar
{
   public class Program
   {
       public static void Main(string[] args)
       {          
           string sBase = @"C:\Users\hcardenas\Desktop\DBF\Envio_Wh.DBF";
           string sConn = "Provider = VFPOLEDB.1; Data Source = " + Path.GetDirectoryName(sBase) + ";";

           using (OleDbConnection dbConn = new OleDbConnection(sConn))
           {
               try
               {
                   dbConn.ConnectionString = sConn;
                   dbConn.Open();

                   //Inserta los datos
                   using (OleDbCommand cmd = new OleDbCommand("INSERT INTO Envio_Wh (User_Grupo,Mensaje,Fecha,Hora,Estado) VALUES (?,?,?,?,?)", dbConn))
                   {
                       string[] lines = System.IO.File.ReadAllLines(@"C:\temp\MensajesxEnviarWsap2.txt");
                       

                       foreach (string line in lines)
                       {
                           string[] partes = line.Split('|');
                           Console.WriteLine(line);


                           cmd.Parameters.AddWithValue("@UserGrupo", partes[0]);
                           cmd.Parameters.AddWithValue("@Mensaje", partes[1]);
                           cmd.Parameters.AddWithValue("@Fecha", partes[2]);
                           cmd.Parameters.AddWithValue("@Hora", partes[3]);
                           cmd.Parameters.AddWithValue("@Estado", partes[4]);
                           cmd.ExecuteNonQuery();
                       }                      
                   }
                   dbConn.Close();

               }
               catch (Exception ex)
               {
                   throw new Exception("No se pudo Realizar la insercion", ex);
               }

             
           }

           System.Console.ReadLine();
           
       }
   }
}
Espero su ayuda y gracias por su tiempo.




(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)