Saul Remis

Developing ideas

TUTORIAL 3 ASP (SQLConnection)

Con ASP.Net podemos comunicarnos a distintos gestores de base de datos como pueden ser SQL Server, Oracle, Access, MySQL etc.
Nosotros trabajaremos con el gestor de base de datos SQL Server, uno por ser el más empleado cuando se utiliza la tecnología de ASP.Net en el desarrollo de sitios web dinámicos.
En esta clase especificaremos todo el código necesario para acceder al gestor de base de datos, desde la cadena de conexión hasta la implementación de los comandos SQL a enviar.

ABM (Altas, Bajas y Modificaciones)

Crearemos una base de datos en SQL Server llamada: administración y dentro de la misma definiremos una tabla llamada usuarios con tres campos:

nombre  varchar(30)   Clave primaria

clave   varchar(30)

mail varchar(30)

Crearemos un sitio web en el Visual Studio 2010 llamado PruebaDataBase.
La primer página solo tendrá los hipervínculos a otras páginas que tendrán por objetivo efectuar una el alta de usuarios, otra la baja, otra las modificaciones y por último otra la consulta:

Para crear esta interface insertaremos cuatro objetos de la clase HyperLink, como mínimo debemos inicializar las propiedades text (es el texto que mostrará el hipervínculo en el navegador y la propiedad NavigateUrl que indica el nombre de la página que debe cargar el navegador cuando se presione el hipervínculo)
Como todavía no tenemos creada las otras cuatro páginas no podemos inicializar la propiedad NavigateUrl de cada HyperLink.

Como segundo paso creemos las cuatro páginas, para ello desde el menú: Archivo -> Nuevo archivo… seleccionamos la plantilla “Web Forms” y en la parte inferior definimos el nombre del archivo aspx.
Los nombres de las cuatro páginas a crear serán:

altausuario.aspx

consultausuario.aspx

bajausuario.aspx

modificacionusuario.aspx

Una vez que hemos creado las cuatro páginas aspx podemos proceder a enlazar la propiedad NavigateUrl de cada control HyperLink.
Cuando seleccionamos la propiedad NavigateUrl aparece un dialogo que nos permite seleccionar la página aspx a enlazar.
Una vez inicializada la propiedad NavigateUrl podremos ver que el texto aparece subrayado (indicando que se trata de un hipervínculo)

Definición de la cadena de conexión con la base de datos en el archivo web.config

Web.config es el archivo principal de opciones de configuración para una aplicación web en ASP.NET.
El archivo es un documento XML que define información de configuración concerniente a la aplicación web. El archivo web.config contiene información que controla la carga de módulos, configuraciones de seguridad, configuraciones del estado de la sesión, opciones de compilación y el lenguaje de la aplicación.
El archivo web.config contiene también la cadenas de conexión a la base de datos.
Debemos modificar la sección:

  <connectionStrings>

    <add name=”ApplicationServices”

         connectionString=”data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true”

         providerName=”System.Data.SqlClient” />

  </connectionStrings>

y remplazarlo por:

<connectionStrings>

    <add name=”ApplicationServices”

         connectionString=”data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true”

         providerName=”System.Data.SqlClient” />

<add name=”administracion”

     connectionString=”Data Source=(local);Initial Catalog=administracion;Integrated Security=True;Pooling=False”/>

</connectionStrings>

Como vemos en la propiedad connectionString indicamos en Initial Catalog el nombre de la base de datos que hemos creado en SQL Server.

Altas

Activemos desde el Visual Studio 2008 la pestaña altausuario.aspx para elaborar la interface visual que nos permita efectuar la carga de datos de usuarios:

Como podemos ver disponemos tres controles de tipo TextBox, el que solicita el ingreso de la clave modificamos la propiedad TextMode con el valor Password, los otros dos los dejamos con el valor SingleLine.
Disponemos un objeto de la clase Button y una Label donde mostraremos un mensaje si el alta se efectuó correctamente.
Por último disponemos un objeto de la clase HyperLink configurando la propiedad NavigateUrl con la dirección de la página principal (Default.aspx)

Ahora codificamos el evento clic del botón de alta:

 

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;

using System.Configuration;

public partial class altausuario : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

    }

    protected void Button1_Click(object sender, EventArgs e)

    {

        String s;

        try{

            s = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

            SqlConnection conexion = new SqlConnection(s);

            conexion.Open();

            SqlCommand comando = new SqlCommand(“insert into usuarios(nombre,clave,mail) values(‘”+ this.TextBox1.Text + “‘,'” + this.TextBox2.Text + “‘,'”+ this.TextBox3.Text + “‘)”, conexion);

            comando.ExecuteNonQuery();

            this.Label4.Text = “Se registró el usuario”;

            conexion.Close();

        }

        catch (SqlException ex)

        {

            this.Label4.Text = ex.Message;

        }

    }

}

 

Lo primero que debemos hacer es importar el espacio de nombres donde se encuentra definida la clase SqlException y ConfigurationManager:

 

using System.Data.SqlClient;

using System.Configuration;

 

Al presionar el botón, primero extraemos la cadena de conexión que tenemos almacenada en el archivo web.config:

S = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

 

Creamos un objeto de la clase SQLConnection indicando como parámetro la cadena de conexión que rescatamos anteriormente:

SqlConnection conexion = new SqlConnection(s);

 

Abrimos la conexión:

conexion.Open();

 

Creamos un objeto de la clase SqlCommand creándolo con los datos cargados en los controles TextBox:

 

     SqlCommand comando = new SqlCommand(“insert into usuarios(nombre,clave,mail) values(‘”+ this.TextBox1.Text + “‘,'” + this.TextBox2.Text + “‘,'”+ this.TextBox3.Text + “‘)”, conexion);

Pedimos a SQL Server que ejecute el comando especificado anteriormente:

comando.ExecuteNonQuery();

Cerramos la conexión:

conexion.Close();

 

Todo esto lo hacemos capturando la excepción SQLException.
En caso de dispararse un error será capturado por el Catch y procederemos a mostrar en una Label el mensaje de error respectivo:

catch (SqlException ex)

{

this.Label4.Text = ex.Message;

}

Consultas

 

Seleccionamos del Explorador de soluciones la página consultausuario.aspx y procedemos a elaborar la siguiente interface visual (disponemos un TextBox, un Button, una Label y un HyperLink:

 

El código del evento click es:

 

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;

using System.Configuration;

 

public partial class consultausuario : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

 

}

protected void Button1_Click(object sender, EventArgs e)

{

String s;

try

{

s = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

SqlConnection conexion = new SqlConnection(s);

conexion.Open();

SqlCommand comando = new SqlCommand(“select nombre,clave,mail from usuarios where nombre='” + this.TextBox1.Text + “‘”, conexion);

SqlDataReader registro = comando.ExecuteReader();

if (registro.Read())

this.Label2.Text = “Usuario encontrado<br>Clave: ” + registro[“clave”] + “<br>Mail: ” + registro[“mail”];

else

this.Label2.Text = “No se ha encontrado al usuario”;

conexion.Close();

}

catch (SqlException ex)

{

this.Label2.Text = ex.Message;

}

}

}

 

Para poder recuperar los datos lo hacemos creando un objeto de la clase SqlDataReader e inicializándolo mediante la llamada del método ExecuteReader de la clase SQLCommand:

SqlDataReader registro = comando.ExecuteReader();

 

Luego recorremos el SqlDataReader (como este caso puede retornar cero o una fila lo hacemos mediante un if:

 

if (registro.Read())

 

Si el método Read retorna true luego podemos acceder a la fila recuperada con el select.

Bajas

Seleccionamos del Explorador de soluciones la página bajausuario.aspx y procedemos a elaborar la siguiente interface visual:

 

Luego el código a ejecutar cuando se presiona el botón “Borrar” de la página es:

 

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;

using System.Configuration;

 

public partial class bajausuario : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

 

}

protected void Button1_Click(object sender, EventArgs e)

{

String s;

try

{

s = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

SqlConnection conexion = new SqlConnection(s);

conexion.Open();

SqlCommand comando = new SqlCommand(“delete from usuarios where nombre='” + this.TextBox1.Text + “‘”, conexion);

int cant = comando.ExecuteNonQuery();

if (cant==1)

this.Label2.Text = “Se borró el usuario”;

else

this.Label2.Text = “No existe un usuario con dicho nombre”;

conexion.Close();

}

catch (SqlException ex)

{

this.Label2.Text = ex.Message;

}

}

}

 

El método ExecuteNonQuery retorna un entero y representa la cantidad de filas borradas de la tabla.

Modificaciones

Por último implementaremos la modificación de datos. Seleccionamos del Explorador de soluciones la página modificacionusuario.aspx y procedemos a elaborar la siguiente interface visual:

 

Para efectuar la modificación de datos de un usuario procederemos primero a la búsqueda de los datos actuales.
Luego el código para los eventos clic de los dos botones es:

 

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;

using System.Configuration;

 

public partial class modificacionusuario : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

 

}

protected void Button1_Click(object sender, EventArgs e)

{

String s;

try

{

s = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

SqlConnection conexion = new SqlConnection(s);

conexion.Open();

SqlCommand comando = new SqlCommand(“select nombre,clave,mail from usuarios where nombre='” + this.TextBox1.Text + “‘”, conexion);

SqlDataReader registro = comando.ExecuteReader();

if (registro.Read())

{

this.Label2.Text = “Usuario encontrado<br>Clave: ” + registro[“clave”] + “<br>Mail: ” + registro[“mail”];

}

else

{

this.Label2.Text = “No se ha encontrado al usuario”;

}

conexion.Close();

}

catch (SqlException ex)

{

this.Label2.Text = ex.Message;

}

}

protected void Button2_Click(object sender, EventArgs e)

{

String s;

try

{

s = ConfigurationManager.ConnectionStrings[“administracion”].ConnectionString;

SqlConnection conexion = new SqlConnection(s);

conexion.Open();

SqlCommand comando = new SqlCommand(“update usuarios set clave='” + this.TextBox2.Text + “‘,mail='” + this.TextBox3.Text + “‘ where nombre='” + this.TextBox1.Text + “‘”, conexion);

int cant = comando.ExecuteNonQuery();

if (cant == 1)

this.Label4.Text = “Usuario modificado”;

else

this.Label4.Text = “No se ha modificado al usuario,puede que no exista, compruebelo”;

conexion.Close();

}

catch (SqlException ex)

{

this.Label4.Text = ex.Message;

}

}

}

 

El botón “Buscar” hace lo mismo que vimos en la consulta. Luego cuando se presiona el botón “Modificar” procedemos a hacer un update de la tabla usuarios con los datos cargados en los TextBox.

 

 

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

Información

Esta entrada fue publicada el julio 13, 2012 por en .NET, Artículo, ASP, Programación C#, Redacción, Web.
A %d blogueros les gusta esto: