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;
}
}
|