miércoles, 3 de octubre de 2012

AJAX Qué! Detergente para programar!

Así me comentó un cuate cuando le pregunté si sabía programar AJAX. En fin, vamos a describir con un ejemplo cómo utilizar los controles de AJAX del Microsoft Visual Web Developer 2010. Yo tengo la versión Express de este producto.

El problema es: se requiere tener un sistema de usuarios, el cual consulte la tabla de empleados con un login y password como referencia; para poder ingresar a un sistema de reporte de incidencias de una empresa o escuela. Lo que trata el sistema es mandar a la base de datos el reporte por faltar al trabajo.

Aquí un diseño de la forma principal de login.

Observemos la siguiente imagen del diseñador del IDE.


En la parte izquierda tenemos las extensiones de AJAX. Para empezar a utilizarlas primero seleccionamos el ScriptManager y lo agregamos a la forma.

Segundo. Agregamos un control UpdatePanel y dentro de este agregamos una tabla para acomodar todos los labels y controles de la forma a utilizar.

Después de esto, ya podemos programar nuestro botón normalmente como se hace.

Aquí el código completo de el funcionamiento del mismo. Comento partes del mismo.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;//Librería para conectar a la BD
using System.Configuration; //Para utilizar la cadena de conexion

                            //que estará guardada en el archivo
                            //Web.Config

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}

protected void Button1_Click1(object sender, EventArgs e)
{
string login, password, cadena, sql, password2;

  login = txtC1.Text; //Tomamos las variables de la forma
password = txtC2.Text;


//Utilizamos la clase ConfigurationManager para traernos la cadena
//de conexión del archivo Web.Config y se lo pasamos a un string
//previamente declarado.

  cadena = ConfigurationManager.ConnectionStrings["incidenciasConnectionString"].ConnectionString;


//Con SqlConnection hacemos la conexión a la base de datos local
// pasandole la cadena de conexión como parámetro.

SqlConnection con = new SqlConnection(cadena);

//Abrimos la conexión.

con.Open();


//Creamos una cadena sql de selección

sql = "SELECT password FROM empleados WHERE login = '" + login.Trim() + "'";


//Creamos un objeto SqlCommand que luego ejecutará
//la sentencia sql.

SqlCommand cmd = new SqlCommand(sql, con);


//Creamos un objeto SqlDataReader para asignarle luego la ejecución
//del comando sql.

SqlDataReader reader = null;

reader = cmd.ExecuteReader();

//Si se ejecuta la consulta, el reader al leer arroja un TRUE.
//Allí podemos leer el dato de la consulta y comparar.

if (reader.Read())
{

  password2 = reader["password"].ToString();//Guardamos en una variable

  reader.Close(); //Cerramos el reader y la conexión!
con.Close();
//Comparamos el string contra lo que el usuario puso en la forma.

if(String.Compare(password.Trim(), password2.Trim())==0){

lblError.Text = "Login Correcto!";


//En caso de ser correcto lo enviamos a la forma del sistema.

Response.Redirect("incidencia.aspx");

}else{


//De lo contrario le mandamos un mensaje de error.

lblError.Text = "Password Incorrecto!";
}
}
else
{


//Mensaje de error en caso de que el login sea incorrecto.
  lblError.Text = "Error, login incorrecto";
}

}
}


Recuerda darle click a los anuncios! Sígueme en el twitter! @rezzaca

No hay comentarios:

Publicar un comentario