Foros del Web » Programando para Internet » ASPX (.net) »

[SOLUCIONADO] Buscar usuario y mostrar datos en label

Estas en el tema de Buscar usuario y mostrar datos en label en el foro de ASPX (.net) en Foros del Web. Como dice el titulo, en un programa en visual studio 2010 de un formulario donde pongo un nombre y el programa me muestra los datos ...
  #1 (permalink)  
Antiguo 27/09/2015, 11:42
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Buscar usuario y mostrar datos en label

Como dice el titulo, en un programa en visual studio 2010
de un formulario donde pongo un nombre y el programa me muestra los datos de la tabla que corresponden a ese nombre en labels, tengo 2 para probar la funcionalidad.
el nombre es
"mostrar.aspx"
Código ASP:
Ver original
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="mostrar.aspx.cs" Inherits="mostrar" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml">
  6. <head runat="server">
  7.    <style type="text/css">
  8. .normal {
  9.   width: 250px;
  10.   border: 1px solid #000;
  11. }
  12. .normal th, .normal td {
  13.   border: 1px solid #000;
  14. }
  15. </style>
  16.     <title></title>
  17. </head>
  18. <body>
  19.     <form id="form1" runat="server">
  20.     <div>
  21.      <table class="normal" >
  22.       <th scope="col">Usuario</th>
  23.     <th>
  24.         <asp:TextBox ID="txtUsuario" runat="server"></asp:TextBox>
  25.       </th>
  26.     </table>
  27.      
  28.          <asp:Button ID="Button2" runat="server" Text="Buscar"
  29.             onclick="Button2_Click" />
  30.  
  31.             </br>
  32.  
  33.       Nombre  <asp:Label ID="lblNombre" runat="server" Text="Label"></asp:Label> </br>
  34.         Apellido <asp:Label ID="lblApellido" runat="server" Text="Label"></asp:Label>
  35.     </div>
  36.   <a href="menu.aspx">Volver a menu</a>
  37.     </form>
  38. </body>
  39. </html>

funcionalidad que no he podido probar porque tengo problemas con el codigo del boton "Buscar", que consegui preguntando pero no esta completo

Código ASP:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. public partial class mostrar : System.Web.UI.Page
  10. {
  11.     protected void Page_Load(object sender, EventArgs e)
  12.     {
  13.  
  14.     }
  15.     protected void Button2_Click(object sender, EventArgs e)
  16.     {
  17.         SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  18.  
  19.            SqlCommand cmd = new SqlCommand("SELECT nombre, apellido FROM usuario WHERE usuario=@txtUsuario",cnn);
  20.  
  21.             cmd.Parameters.AddWithValue("@tuCodigo",Convert.ToInt32(me.txtusuario.text));
  22.  
  23.              SqlDataAdapter da= new SqlDataAdapter(cmd);
  24.  
  25.              DataTable dt= new DataTable();
  26.  
  27.               da.Fill(dt);
  28.  
  29.  
  30.  
  31. lblNombre.Text= dt.Rows["nombre"];
  32.  
  33. lblApellido.Text=dt.rows["apellido"];
  34.     }
  35. }

y eso por favor que alguien em de una mano por favor :C
  #2 (permalink)  
Antiguo 28/09/2015, 14:09
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

Hola jmfmagnum,
En el evento Button2_Click, en la variable "cmd" SqlCommand, a la consulta no le estás pasando el nombre del usuario. Además en la linea "cmd.Parameters" debes comentarla ya que hay 2 errores.
1) Está convirtiendo el texto de un nombre de usuario a entero y esto te dará error. (A menos que el nombre de usuario de un usuario sean números, en ese caso si estaría correcto)
2) El nombre del parámetro de entrada "@tuCodigo", no existe en la consulta, por ende, al momento de llegar a esa línea se te caerá porque encuentra ese parametro de entrada.



Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.            SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  4.  
  5.            SqlCommand cmd = new SqlCommand("SELECT nombre, apellido FROM usuario WHERE usuario="+ txtUsuario.Text,cnn);
  6.  
  7.             //cmd.Parameters.AddWithValue("@tuCodigo",Convert.ToInt32(me.txtusuario.text));
  8.  
  9.              SqlDataAdapter da= new SqlDataAdapter(cmd);
  10.  
  11.              DataTable dt= new DataTable();
  12.  
  13.               da.Fill(dt);
  14.  
  15.  
  16.  
  17.              lblNombre.Text= dt.Rows["nombre"];
  18.  
  19.              lblApellido.Text=dt.rows["apellido"];
  20.     }

Espero haber sido de ayuda
Saludos,
  #3 (permalink)  
Antiguo 28/09/2015, 16:53
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Cita:
Iniciado por kal_el52 Ver Mensaje
Hola jmfmagnum,
En el evento Button2_Click, en la variable "cmd" SqlCommand, a la consulta no le estás pasando el nombre del usuario. Además en la linea "cmd.Parameters" debes comentarla ya que hay 2 errores.
1) Está convirtiendo el texto de un nombre de usuario a entero y esto te dará error. (A menos que el nombre de usuario de un usuario sean números, en ese caso si estaría correcto)
2) El nombre del parámetro de entrada "@tuCodigo", no existe en la consulta, por ende, al momento de llegar a esa línea se te caerá porque encuentra ese parametro de entrada.



Código ASP:
Ver original
  1. protected void Button2_Click(object sender, EventArgs e)
  2.     {
  3.            SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  4.  
  5.            SqlCommand cmd = new SqlCommand("SELECT nombre, apellido FROM usuario WHERE usuario="+ txtUsuario.Text,cnn);
  6.  
  7.             //cmd.Parameters.AddWithValue("@tuCodigo",Convert.ToInt32(me.txtusuario.text));
  8.  
  9.              SqlDataAdapter da= new SqlDataAdapter(cmd);
  10.  
  11.              DataTable dt= new DataTable();
  12.  
  13.               da.Fill(dt);
  14.  
  15.  
  16.  
  17.              lblNombre.Text= dt.Rows["nombre"];
  18.  
  19.              lblApellido.Text=dt.rows["apellido"];
  20.     }

Espero haber sido de ayuda
Saludos,
mmm todo esta en varchar, gracias por tu respuesta, pero aun estoy en dudas :C
la entrada "@tuCodigo" venia de donde vi el codigo , no se como se usa.

Última edición por jmfmagnum; 28/09/2015 a las 17:02
  #4 (permalink)  
Antiguo 29/09/2015, 12:06
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Hize algunas modificaicones pero, lo que me falta es como cargar los datos a los labels, si tuviera eso, lograria mi cometido, por ahora los labels me tiran errorres por el "dt.Rows"

Código ASP:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. public partial class mostrar : System.Web.UI.Page
  10. {
  11.     protected void Page_Load(object sender, EventArgs e)
  12.     {
  13.        
  14.     }
  15.     protected void Button2_Click(object sender, EventArgs e)
  16.        {
  17.            string usuario;
  18.  
  19.            usuario = txtUsuario.Text;
  20.          
  21.         SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  22.         SqlCommand cmd = new SqlCommand("SELECT * FROM usuario WHERE  usuario='" + usuario + "'",cnn);
  23.         SqlDataAdapter da= new SqlDataAdapter(cmd);
  24.          DataTable dt= new DataTable();
  25.          da.Fill(dt);
  26.  
  27.          lblNombre.Text= dt.Rows["usuario"];
  28.          lblApellido.Text=dt.Rows["apellido"];
  29.  
  30.         cnn.Close();
  31.    }
  32.      
  33. }
  #5 (permalink)  
Antiguo 29/09/2015, 14:31
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

El error está en que le estás pasando un dt.Rows al texto de un Label.
un dt.Rows devuelve un objeto DataRowCollection y no un string, como lo recibe la propiedad Text del Label.

Como estás consultando un usuario deberías colocar esta validación.

Código ASP:
Ver original
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using System.Web.UI;
  6. using System.Web.UI.WebControls;
  7. using System.Data.SqlClient;
  8. using System.Data;
  9. public partial class mostrar : System.Web.UI.Page
  10. {
  11.     protected void Page_Load(object sender, EventArgs e)
  12.     {
  13.        
  14.     }
  15.     protected void Button2_Click(object sender, EventArgs e)
  16.        {
  17.            string usuario;
  18.  
  19.            usuario = txtUsuario.Text;
  20.          
  21.         SqlConnection cnn= new SqlConnection("Data Source=PORTATIL-PC;Initial Catalog=crud;Persist Security Info=True;User ID=sa;Password=123456");
  22.         SqlCommand cmd = new SqlCommand("SELECT * FROM usuario WHERE  usuario='" + usuario + "'",cnn);
  23.         SqlDataAdapter da= new SqlDataAdapter(cmd);
  24.          DataTable dt= new DataTable();
  25.          da.Fill(dt);
  26.  
  27.          //Aquí vemos si la consulta trae datos, es decir, si el usuario que consultaste existe.
  28.          if(dt.Rows.Count > 0)
  29.          {
  30.              //Al datatable debes indicarle la fila de la cual quieres obtener el valor. Suponemos que te trae un registro,
  31.             //porque es un usuario el que consultas, por eso le damos el valor 0... dt.Rows[indice][nombreColumna]
  32.             //Antes solo estabas pasando el nombre de la columna
  33.              lblNombre.Text= dt.Rows[0]["usuario"].ToString();
  34.              lblApellido.Text=dt.Rows[0]["apellido"].ToString();
  35.          }
  36.  
  37.         cnn.Close();
  38.    }
  39.      
  40. }

Saludos,
  #6 (permalink)  
Antiguo 29/09/2015, 14:47
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Muy bueno gracias, pero tengo otro problema, todo ocurre en un mismo aspx
haciendo una consulta de prueba no cargo, a menos que hiciera "PostbackUrl" a otro aspx, pero por requerimiento del profesor debe ser dentro del mismo aspx "mostrar.aspx", y aun con el codigo que me diste, no pasa nada, dice mi profesor que puede ser un error de consulta, peor no se cual seria
  #7 (permalink)  
Antiguo 30/09/2015, 08:28
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

Si no pasa nada cuando haces click, puede ser que el "Button2" no tenga asignado el evento "Button2_Click" en la propiedad "onclick".

Código ASP:
Ver original
  1. <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />

Si ese no es el caso, pon el código del webforms mostrar.aspx

Saludos,

Última edición por kal_el52; 30/09/2015 a las 08:39
  #8 (permalink)  
Antiguo 30/09/2015, 09:27
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Muchisimas gracias, funciono bien, el error era uno muy basico
Código ASP:
Ver original
  1. <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" />
como dijiste, el boton llamaba a "Button2_Click1"
y el que tenia el codigo era "Button2_Click", ups un error simple , ahora solo falta poder hacer que pueda usar una clase en vez de hacer la conexion en el mismo mostrar.aspx y estaria listo al 100%

como decia tengo la clase
"Conexion.cs", donde hago la conexion pero el "Sqlcommand" necesita que este en el mismo aspx, y lo que falta es como enviar los datos de los textbox al archivo Conexion y que lo devuelva, como no puedo enviar "String" me quedo bloqueado.

Última edición por jmfmagnum; 30/09/2015 a las 10:38
  #9 (permalink)  
Antiguo 30/09/2015, 13:05
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

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,
  #10 (permalink)  
Antiguo 30/09/2015, 14:17
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 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.    }
  #11 (permalink)  
Antiguo 30/09/2015, 15:25
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

El SqlCommand del metodo consultar, no está asignado a ninguna conexión.
Lo que está haciendo, es que al momento de ejecutar la consulta, se te cae porque no sabe a que base de datos va a apuntar, porque no le has definido el string de conexión.

Código ASP:
Ver original
  1. public DataTable consultar(String usuario)
  2.   {
  3.       //Aqui le indicas al SqlCommand, la conexión a cual apuntará
  4.       comando.Connection = conn;
  5.       comando = new SqlCommand("Select * from usuario where usuario='" + usuario + "'");
  6.       SqlDataAdapter da = new SqlDataAdapter(comando);
  7.       DataTable dt = new DataTable();
  8.       da.Fill(dt);
  9.       return dt;
  10.   }
  #12 (permalink)  
Antiguo 30/09/2015, 18:10
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

Bueno ahora me salio otro error

Ayuda por favor

Última edición por jmfmagnum; 01/10/2015 a las 05:11 Razón: imagen salio en baja resolucion
  #13 (permalink)  
Antiguo 01/10/2015, 09:56
 
Fecha de Ingreso: septiembre-2015
Mensajes: 8
Antigüedad: 8 años, 7 meses
Puntos: 5
Respuesta: Buscar usuario y mostrar datos en label

Estabas instanciando 2 veces la clase conexión, en la primera la instanciabas y te conectabas, y después generabas otro objeto Conexion con el que consultabas al usuario (en este último nunca hiciste la conexión).

Te recomiendo que toda la conexión la hagas en un método y no en métodos separados.

Ejemplo:

Código ASP:
Ver original
  1. public DataTable consulta(string usuario)
  2. {
  3.     //Se usa un using, porque todo lo que esté dentro de él vivirá en ese ámbito. Esto sirve en caso de que no cierres la conexión, se cerrará sola porque hereda de la interfaz IDisposable, es decir, que eliminará al objeto de conexión
  4.     using (SqlConnection conn = new SqlConnection("Data Source=VESTERGAARD-PC\\VESTERGAARD;Initial Catalog=crud;User ID=sa;Password=123456"))
  5.     {
  6.         //Abres conexión
  7.         conn.Open();
  8.         //Asignas un comando
  9.         SqlCommand comando = new SqlCommand("Select * from usuario where usuario='" + usuario + "'");
  10.         //Configuras el comando
  11.         comando.Connection = conn; //Le asignas la conexión en donde se ejecutará el comando
  12.         comando.CommandType = CommandType.Text;// Le dices que el comando es de tipo Texto, (puedes decir que es de tipo SP en caso de que uses Procedimientos almacenados)
  13.         SqlDataAdapter da = new SqlDataAdapter(comando);
  14.         DataTable dt = new DataTable();
  15.         da.Fill(dt);
  16.         //Cierre de Conexión y destrucción del mismo
  17.         comando.Dispose();
  18.         conn.Close();
  19.         conn.Dispose();
  20.         return dt;
  21.     }
  22. }

Y para llamarlo deberías hacerlo así.

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


Saludos,
  #14 (permalink)  
Antiguo 01/10/2015, 12:53
 
Fecha de Ingreso: julio-2014
Mensajes: 116
Antigüedad: 9 años, 9 meses
Puntos: 1
Respuesta: Buscar usuario y mostrar datos en label

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

y la clase la modifique asi
Código ASP:
Ver original
  1. public DataTable consultar(String usuario)
  2.     {
  3.    
  4.         comando = new SqlCommand("Select * from usuario where usuario='" + usuario + "'", conn);
  5.         SqlDataAdapter da = new SqlDataAdapter(comando);
  6.         DataTable dt = new DataTable();
  7.         da.Fill(dt);
  8.         return dt;
  9.     }

al final "conn" se agregaba al final "SqlCommand"
gracias por su ayuda, con esto encontre la solucion, gracias marcare como solucionado

Etiquetas: asp, label, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:37.