C sharp - cómo cargar un archivo de Texto a un gridView

   
Vista:

cómo cargar un archivo de Texto a un gridView

Publicado por Leonardo Josué (25 intervenciones) el 15/10/2008 20:56:04
Buenas Tardes, tengo un problema para poder cargar un achivo de texto a un gridView y espero que alguno de ustedes me pueda ayudar. Primero explico el escenario en el que me encuentro:

Actualmente en la empresa donde trabajo algunas oficinas entregan informes en archivos de texto. Algunos archivos vienen separados por comas, pero algunos otros están separados por Pipeline's (|). En estos momentos estoy desarollando una aplicación en ASP.NET con C# para visualizar estos archivos de texto dentro de un GridView. La estructura de los archivos de texto es más o menos como sigue:

Ejemplo archivo separado por comas (c:/ReportesSemanales/ReporteComas.txt)
2008,1897,1,10,99,4,3,223,419035
2008,1898,1,10,99,4,3,223,420768
2008,1899,1,10,99,4,3,223,420244
2008,1900,1,10,99,4,3,223,419871
2008,1901,1,10,99,4,3,223,419868
2008,1902,1,10,99,4,3,223,420094
2008,1903,1,10,99,4,3,223,419039

Ejemplo archivo separado por Pipeline's (c:/ReportesSemanales/ReportePipe.txt)

2008|1897|1|10|99|4|3|223|419035
2008|1898|1|10|99|4|3|223|420768
2008|1899|1|10|99|4|3|223|420244
2008|1900|1|10|99|4|3|223|419871
2008|1901|1|10|99|4|3|223|419868
2008|1902|1|10|99|4|3|223|420094
2008|1903|1|10|99|4|3|223|419039

Ahora bien, para Leer el archivo De texto, lo hago mediante OLEDB, a grandes rasgos esto es lo que hago:

#region Obtiene la Cadena De Conexión
connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties='text;HDR={1};FMT={2}'", "c:/ReportesSemanales", "NO", "Delimited");
SelectSQL ="SELECT * FROM " + ReporteComas.txt; //-> Para Pipelines cambiar
try
{
conn = new OleDbConnection(@connectionString);
conn.Open(); // Abrimos la conexión al archivo
OleDbCommand dbCommand = new OleDbCommand(SelectSQL.ToString(), conn);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(dbCommand);
//Crear una nueva Tabla
DataTable dTable = new DataTable();
dataAdapter.Fill(dTable);
//Asignar la tabla al GridView
GVArchivo.DataSource = dTable;
GVArchivo.DataBind();
// Eliminar los objetos y cerrar las conexiones.
dTable.Dispose();
dataAdapter.Dispose();
dbCommand.Dispose();
conn.Close();
conn.Dispose();
}
catch (Exception ex)
{
Temporal = new StringBuilder();
Temporal.Append("A ocurrido una excepción: ").Append(@ex.ToString());
}

Cuando estoy leyendo el archivo separado por comas, no tengo ningún problema, sin embargo, cuando trato de leer el archivo separado por pipelines se carga la información en una sola columna del GridView, cuando lo que yo deseo es que separa cada valor en una columna diferente.

Mi pregunta es ¿Cómo puedo especificarle a mi string de conexión qué caracter debe utilizar como delimitador?

Saludos y espero que me puedan ayudar
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder