Archive for February, 2009

Typed DataSets y como asignar una propiedad a Null

Tuesday, February 24th, 2009

Los Typed Datasets son una herramienta muy util en .net. Nos permite tener DataTables, DataAdapter y DataRows con propiedades especificas a nuestro modelo de base de datos. Asi, podemos acceder a un registro, digamos asi:

EstudiantesDataRow fila= new estudiantes.NewGapsRow();

fila.Nombre = “Nombre”;

El problema es meter el valor null a un campo que lo admite, pues esto:

 fila.Nombre = DBNull.value;

Nos daria este mensaje de error:

Cannot implicitly convert type ‘System.DBNull’ to ‘String’

Y para resolver este problema, simplemente tendremos que hacer uso del metodo “setXXXNull()” que nos crea el typed DataSet. OJO: Esto solo funciona para valores que permiten null en la base de datos.

fila.SetNombreNull();

:-)

Aguas con el encoding al leer un archivo.

Tuesday, February 24th, 2009

Leer archivos de texto linea por linea es muy muy sencillo con .Net, con el viejo metodo ReadLine del StreamReader:

System.IO.StreamReader file = new System.IO.StreamReader(ruta);
linea = file.ReadLine()

Sin embargo, el dia de hoy me salio un problema con este método, pues tenia un archivo con el caracter à, que es escencialmente diferente del caracter á por el acento invertido. Resulto que el ReadLine me estaba truncando este caracter. Despues de un ratito de quebradero de cabeza, la solucion fue indicarle el encoding al StreamReader a la hora de abrir el archivo:

System.IO.StreamReader file = new System.IO.StreamReader(ruta,System.Text.Encoding.Default);

Definitivamente esta es una saludable práctica que incluiré a partir de hoy en mis desarrollos.∞

Usando Google Chart Api para graficas en ASP.Net

Thursday, February 19th, 2009

Si son desarrolladores, seguramente han escuchado hablar de la API de Google Chart, que es basicamente una herramienta que Google nos regala como parte de su plan global para dominar al mundo, y que sirve para hacer graficas a partir de una URL con un formato especifico. Lo que basicamente significa es que esto:

http://chart.apis.google.com/chart?chl=A|B|C|E&chd=e:APAjAyBQ&chco=0000FF&cht=p3

Se puede ver como esto en nuestro sitio Web:

Es en realidad muy sencillo de usar, siempre y cuando podamos formatear correctamente los datos que querramos visualizar. Pero como normalmente no es necesario inventar la rueda, pues me di a la tarea de encontrar algun componente que me ayudara con esto. Asi que me encontre una pieza de codigo Llamada NGChart, que es basicamente una libreria que elegantemente implementa cada grafica como clase, y haciendo uso del metodo ToString() nos regresa la direccion de la grafica que queremos usar. Basicamente importando la libreria y escribiendo un codigo como el siguiente:

ChartData datosGrafica = new ChartData(datosInt);
PieChartLabels etiquetas = new PieChartLabels(TxtEtiquetas.Text.Split(’,'));
PieChart grafica = new PieChart(tipoGrafica, tamañoGrafica, datosGrafica, etiquetas);
grafica.Colors = new ChartColors(System.Drawing.Color.Blue);
Image1.ImageUrl = grafica.ToString();

Tendremos una bonita grafica en nuestra página de .Net.

Ahora mi problema es hacer que esto funcione como un web service (para que pueda interactuar con una aplicación en JSP), pero ademas, que pueda surtir las graficas a una red interna que esta detras de un proxy que no nos deja salir a Google. Es mi siguiente reto, y ya les platicare de el (si lo logro). en la siguiente entrega. ∞