Ver Mensaje Individual
  #10 (permalink)  
Antiguo 30/09/2015, 14:17
jmfmagnum
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 10 años, 4 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Cita:
Iniciado por kal_el52 Ver Mensaje
El SqlCommand debe estar en el aspx? o la consulta debe estar en el aspx?
Generalmente en la clase de conexión a la base de datos, tu construyes los métodos que irán a buscar información a la BDD y solamente recibes los parametros que necesitas para obtener dicha información. Por lo que te recomendaría que el SqlCommand lo crearas en la clase Conexion.
Porque el FrontEnd de tu aplicación (mostrar.aspx), solamente debe preocuparse de mostrar datos y no tener una lógica de conexión a BDD.


Aquí va lo que creo que quieres.
Las instrucciones que tienes en el evento "Button2_Click", lo pasas al método que crearás en la clase Conexion, cuyo método debe recibir los parámetros que tu necesitas para consultar a un usuario, en este caso es el nombre de usuario. El método te debe devolver un Datable, que contendrá la información del usuario consultado.

Algo como así.
Código ASP:
Ver original
  1. public class Conexion
  2. {
  3.         public DataTable ObtenerDatosUsuario(string usuario)
  4.        {
  5.          
  6.         SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  7.         SqlCommand cmd = new SqlCommand("SELECT * FROM usuario WHERE  usuario='" + usuario + "'",cnn);
  8.         SqlDataAdapter da= new SqlDataAdapter(cmd);
  9.          DataTable dt= new DataTable();
  10.          da.Fill(dt);
  11.  
  12.          return dt;
  13.  
  14.         cnn.Close();
  15.    }
  16.  
  17. }

Ahora esta clase que has creado, debes instanciarla en el Code Behind de tu página (mostrar.aspx.cs). Y cuando la instancies, usarás el método, todo esto lo llamas al momento de presionar el Button2.

Algo como así
Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2. {
  3.          string nombreUsuario = txtUsuario.Text;
  4.          //Aquí le debes pasar el nombre de usuario
  5.          DataTable dt = new Conexion().ObtenerDatosUsuario(nombreUsuario);
  6.          //Debes validar nuevamente si el DataTable tiene datos (filas), para saber si el usuario consultado existe.
  7.         if(dt.Rows.Count > 0)
  8.         {
  9.                //Si es así, es decir, si tiene datos, entonces procedes a llenar los Label de la forma en que lo estabas haciendo. "dt.Rows[]...." etc....
  10.         }
  11. }

*Si el SqlCommand debe pasarse desde el "mostrar.aspx", entonces le agregas otro parámetro de entrada al método "ObtenerDatosUsuario", de la clase Conexion.

Espero haber sido de ayuda
Saludos,
todo esta en la clase, tal como lo mostraste
el boton hace lo demas pero tengo un problema me lanza el siguiente error :



Te paso la clase que uso y como deje el boton
Clase "Conexion"

Código ASP:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Data.SqlClient;
  6. using System.Data;
  7.  
  8. /// <summary>
  9. /// Summary description for Conexion
  10. /// </summary>
  11. public class Conexion
  12. {
  13.      SqlConnection conn;
  14.      SqlCommand comando;
  15.     public Conexion()
  16.       {
  17.           conn = new SqlConnection("Data Source=VESTERGAARD-PC\\VESTERGAARD;Initial Catalog=crud;User ID=sa;Password=123456");
  18.        }
  19.  
  20.     public String conectar()
  21.     {
  22.  
  23.         try
  24.         {
  25.             conn.Open();
  26.         }
  27.         catch (SqlException e)
  28.         {
  29.             return "Error:" + e.Message;
  30.         }
  31.         return "Conexion exitosa";
  32.    
  33.     }
  34.  
  35.  
  36.     public String desconectar()
  37.     {
  38.  
  39.         try
  40.         {
  41.             conn.Close();
  42.         }
  43.         catch (SqlException e)
  44.         {
  45.             return "Error:" + e.Message;
  46.         }
  47.         return "Desconexion exitosa";
  48.  
  49.     }
  50.  
  51.  
  52.  
  53.   public DataTable consultar(String usuario)
  54.   {
  55.  
  56.       comando = new SqlCommand("Select * from usuario where usuario='" + usuario + "'");
  57.       SqlDataAdapter da = new SqlDataAdapter(comando);
  58.       DataTable dt = new DataTable();
  59.       da.Fill(dt);
  60.       return dt;
  61.   }
  62. }

Boton:
Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.         string usuario;
  4.         usuario = txtUsuario.Text;
  5.  
  6.       Conexion cnn = new Conexion();
  7.        cnn.conectar();
  8.    
  9.        DataTable dt = new Conexion().consultar(usuario);
  10.         try
  11.         {
  12.             if (dt.Rows.Count > 0)
  13.             {
  14.  
  15.                 lblNombre.Text = dt.Rows[0]["usuario"].ToString();
  16.                 lblApellido.Text = dt.Rows[0]["apellido"].ToString();
  17.                 lblCorreo.Text = dt.Rows[0]["correo"].ToString();
  18.                 lblFechaN.Text = dt.Rows[0]["fechanac"].ToString();
  19.             }
  20.             else
  21.             {
  22.                 Response.Write("No se encontro usuario");
  23.             }
  24.         }
  25.         catch (SqlException ex)
  26.         {
  27.  
  28.             Response.Write("No se puede ejecutar" + ex.Message);
  29.         }
  30.  
  31.       cnn.desconectar();
  32.    }