Archivos para .NET

Ficheros de configuración y codificación

Posted in Programación with tags , , , , , on 15 abril, 2010 by febrer

Tras unos cuantos quebraderos de cabeza, ayer solucione un problema que posiblemente os pueda pasar a más de uno.

Esta relacionado con los ficheros de configuración de nuestras aplicaciones .NET (fichero .config), Windows 2003 Server (posiblemente en xp no pase) y acentos (quizás con un fichero sin caracteres extendidos, esto no ocurra). Casualidad el que estaba utilizando sí los tenía.

El problema radica en la codificación del fichero (Unicode, ANSI, UFT-8, etc …).

El problema nos lo encontramos al editarlo con “wordpad”. Este editor, cambia la codificación del fichero, haciendo que dicho fichero no sea reconocido correctamente por nuestra aplicación y dando un error en el visor de eventos que para nada aclara el verdadero problema.

Este es el detalle del error:

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date:  4/13/2010
Time:  2:43:15 PM
User:  N/A
Computer: SERVER1
Description:
EventType clr20r3, P1 k2dtc2xq5edgbqzwwi41i4xzrenn5n2p, P2 1.0.0.0, P3 4bbf2346, P4 system.configuration, P5 2.0.0.0, P6 4889de74, P7 1a6, P8 136, P9 ioibmurhynrxkw0zxkyrvfn0boyyufow, P10 NIL.
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.

Para solucionarlo, simplemente hay que editar el fichero con “notepad”, y utilizar la opción “guardar como”, indicando UNICODE o UTF-8.

Posiblemente alguno ya conozca este problemilla, pero creo que es interesante compartirlo.

Leyendo un fichero excel desde .NET con OLEDB

Posted in Programación with tags , , on 4 junio, 2009 by febrer

Este es un sencillo método para acceder a un fichero excel desde .NET utlizando OLEDB. Simplemente tenemos que indicar la ubicación del fichero en nuestro disco, y el nombre la la hoja a la cual queremos acceder. El paramentro HDR=NO, indica que la primera línea de la hoja excel no es el nombre de las columnas del datatable generado.

///
///
///
private DataTable GetExcel(string fileName, string sheetName)
{
OleDbConnection dbConn = null;
DataTable resultTable = new DataTable(sheetName);
// construimos la cadena de conexión.
string connString = “Provider=Microsoft.Jet.OLEDB.4.0;” +
“Data Source=” + fileName + “;Extended Properties=’Excel 8.0;HDR=NO;'”;

// creamos la conexión y la abrimos.
dbConn = new OleDbConnection(connString);
dbConn.Open();

if (!sheetName.EndsWith(“$”))
{
sheetName += ‘$’;
}
string query = string.Format(“SELECT * FROM [{0}]”, sheetName);
using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, dbConn))
{
adapter.Fill(resultTable);
}

return resultTable;
}