Inicio > C#, C# 4.0, Ejemplos, RSS, Visual Studio, Visual Studio 2008, Visual Studio 2010, XML > [RSS] Generando RSS desde una Base de Datos con ASP.NET (C#)

[RSS] Generando RSS desde una Base de Datos con ASP.NET (C#)

Este es un tema ya un poco trillado, pero vamos a hacer un ejemplo de como leer datos de una tabla, y mostrarlos en una página de .aspx. Bien aquí el como hacerlo.

Primero creamos una tabla (si es que no la tenemos) sencilla que tiene el siguiente diseño:

image

Muy sencilla como pueden observar. Ya con nuestra tabla ingresamos unos cuantos datos. Luego creamos un Sitio Web desde Visual Studio con C#. Lo primero que hacemos es crear nuestra cadena de conexión en nuestro archivo Web.config con las siguiente instrucción:

<connectionStrings>
        <add name="cnx" connectionString="Data source=SQLNOR;
                    initial catalog=BD_DEMOS;
                    User id=******;
                    password=******" 
             providerName="System.Data.SqlClient"/>
    </connectionStrings>

Luego desde el código manejado creamos una función que nos regrese nuestra conexión, ya saben por estética xD, la función es el siguiente:

private SqlConnection miConexion()
   {
       return new SqlConnection(WebConfigurationManager.ConnectionStrings["cnx"].ConnectionString);
   }

Después creamos otra Función para llenar nuestro DataSet, el cual vamos a ocupar para crear el archivo XML que mostrara las RSS, la función de para llenar el DataSet tiene la siguiente estructura:

private DataSet LlenarDataSet()
   {
       SqlConnection cn = miConexion();
       SqlCommand com = new 
           SqlCommand("SELECT Titulo, Descripcion, Link, FechaAdd FROM Entradas", cn);
       cn.Open();
       SqlDataAdapter da = new SqlDataAdapter(com);
       DataSet ds = new DataSet();
       da.Fill(ds);
       com.Dispose();
       cn.Close();
       return ds;
   }

En esta parte y por la sencillez del ejemplo, me pase por alto el colocar TRY-CATCH, el utilizar Using para declarar la conexión,  y coloque directamente una instrucción T-SQL cosa que en una aplicación no se debe de hacer, pero vale que es solo un ejemplo, para que sepan como hacerlo.

Por ultimo tenemos que hacer un método que para crear la estructura del XML de nuestros RSS.

private void getCanalRSS(DataSet ds)
   {
       XmlTextWriter writer = new XmlTextWriter(Response.OutputStream, System.Text.Encoding.UTF8);
       writer.WriteStartDocument();
       writer.WriteStartElement("rss");
       writer.WriteAttributeString("version", "2.0");
       writer.WriteStartElement("channel");
       writer.WriteElementString("title", "My Content Pipeline");
       writer.WriteElementString("link", "https://mspnor.wordpress.com");
       writer.WriteElementString("description", "Ejemplo del canal de RSS de mi blog");
       writer.WriteElementString("copyright", "(c) 2008, Blog del nor xD.");

       for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
       {
           writer.WriteStartElement("item");
           writer.WriteElementString("title", ds.Tables[0].Rows[i]["Titulo"].ToString());
           writer.WriteElementString("description", ds.Tables[0].Rows[i]["Descripcion"].ToString());
           writer.WriteElementString("link", ds.Tables[0].Rows[i]["Link"].ToString());
           writer.WriteElementString("pubDate", ds.Tables[0].Rows[i]["FechaAdd"].ToString());
           writer.WriteEndElement();
       }
       writer.WriteEndElement();
       writer.WriteEndElement();
       writer.WriteEndDocument();
       writer.Flush();
       writer.Close();
   }

Bueno pues hasta aquí creo que es todo, solo resta colocar esto en el evento Load de nuestra página:

DataSet ds = LlenarDataSet();
        Response.Clear();
        Response.ContentType = "text/xml";
        getCanalRSS(ds);
        Response.End();

Después generar y por ultimo presionar F5 en nuestro teclado xD.

Antes de terminar quiero comentarles que hice la prueba con IE8, Mozilla y Chrome y el resultado fue que Chrome no reconoce los RSS, por los otros 2 todo muy bien. Creo que es todo y espero que les sea de utilidad.

Saludos!

Iralo!…ese!!..@nor

  1. Aún no hay comentarios.
  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: