ASP.NET
 

Código de Visual C# de la página ModificarUsuario.aspx del Tutorial de acceso a datos desde páginas Web usando Visual Web Developer 2005

 

Publicado el 04/Feb/2007
Actualizado el 04/Feb/2007
Autor: Guillermo 'guille' Som

 


 

 

Este es el código de Visual C# 2005 de la página que habrás creado usando las indicaciones de la tercera parte del Tutorial de acceso a datos en sitio Web creado con Visual Web Developer 2005 Express y SQL Server 2005 Express.

 

 El código de Visual C# 2005

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

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

    }

    protected void btnActualizar_Click(object sender, EventArgs e)
    {
        this.lblAviso.Text = "";
        //
        // Comprobamos si el nombre ya existe
        using (SqlConnection cnn = 
                    new SqlConnection(this.SqlDataSource1.ConnectionString))
        {
            // El valor que necesitamos es el ID
            SqlCommand cmd = new SqlCommand(
                "SELECT ID " +
                "FROM Usuarios " +
                "WHERE Correo = @Correo", cnn);
            // Abrimos la conexión
            cnn.Open();
            // Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text);

            // Si devuelve cero, es que no existe
            int i = (int)cmd.ExecuteScalar();
            if (i == 0)
            {
                // Avisamos y salimos
                this.lblAviso.Text = "El usuario NO existe";
                return;
            }

            // Si llegamos aquí, es que el usuario existe
            // Deberíamos hacer las comprobaciones de que haya datos que guardar,
            // pero... eso te lo dejo a ti...
            //
            // Seguimos usando la misma conexión, pero cambiamos el comando

            // Usamos el comando Update del DataSource
            cmd = new SqlCommand(this.SqlDataSource1.UpdateCommand, cnn);

            // Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text);
            // La clave la guardaremos como un valor SHA1
            // pero como ya estará como SHA1, simplemente la asignamos
            cmd.Parameters.AddWithValue("@Clave", txtClave.Text);
            // Esto nos puede dar problemas dependiendo del forma
            // del servidor en el que está la base de datos
            cmd.Parameters.AddWithValue("@Fecha", txtFecha.Text);
            cmd.Parameters.AddWithValue("@Nombre", txtNombre.Text);
            cmd.Parameters.AddWithValue("@Comentarios", txtComentarios.Text);

            // El valor de la variable i es el ID a actualizar
            cmd.Parameters.AddWithValue("@ID", i);

            // Ejecutamos el comando de actualización
            // con una llamada a ExecuteNonQuery
            cmd.ExecuteNonQuery();


            // Al salir del bloque using se cierra la conexión
        }
        this.lblAviso.Text = "Se ha añadido el nuevo usuario correctamente";
    }

    protected void btnMostrar_Click(object sender, EventArgs e)
    {
        this.lblAviso.Text = "";
        //
        // Comprobamos si el nombre ya existe
        using (SqlConnection cnn = new SqlConnection(this.SqlDataSource1.ConnectionString))
        {
            // La cadena de slección será la que tenga el DataSource,
            // pero buscando el correo que hemos escrito
            //string sel;
            //sel = this.SqlDataSource1.SelectCommand + 
            //        " WHERE Correo = @Correo";
            //SqlCommand cmd = new SqlCommand(sel, cnn);
            
            // Usando un procedimiento almacenado
            SqlCommand cmd = new SqlCommand();
            cmd.CommandText = "MostrarUsuario";
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection = cnn;

            // Abrimos la conexión
            cnn.Open();
            // Añadimos el valor del parámetro de la consulta
            cmd.Parameters.AddWithValue("@Correo", txtCorreo.Text);

            // El resultado lo guardaremos en una tabla
            DataTable tabla = new DataTable();
            // Usaremos un DataAdapter para leer los datos
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            // Llenamos la tabla con los datos leídos
            da.Fill(tabla);

            // Si la tabla no tiene filas, es que no existe ese usuario
            if (tabla.Rows.Count == 0)
            {
                // Avisamos y salimos
                this.lblAviso.Text = "El usuario NO existe";
                return;
            }

            // Mostramos los datos
            // que estarán en la primera fila de la tabla,
            // ya que solo debería haber un solo usuario con ese correo
            this.txtClave.Text = tabla.Rows[0]["Clave"].ToString();
            this.txtFecha.Text = tabla.Rows[0]["Fecha"].ToString();
            this.txtNombre.Text = tabla.Rows[0]["Nombre"].ToString();
            this.txtComentarios.Text = tabla.Rows[0]["Comentarios"].ToString();

            this.lblAviso.Text = "El usuario existe y se han leído los datos.";

            // Al salir del bloque Using se cierra la conexión
        }
    }

    protected void btnGenerarClaveSha1_Click(object sender, EventArgs e)
    {
        // Generar la clave SHA1 a partir de lo que haya en txtClave
        // y asignar nuevamente a ese mismo textBox el resultado
        string clave;
        clave = FormsAuthentication.HashPasswordForStoringInConfigFile(
            txtClave.Text, "SHA1");
        txtClave.Text = clave;
    }
}

 

Volver a la página explicativa

 



Ir al índice principal de el Guille