Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/11/2012, 16:50
Avatar de cristiantorres
cristiantorres
 
Fecha de Ingreso: marzo-2012
Mensajes: 383
Antigüedad: 12 años, 2 meses
Puntos: 61
Respuesta: Problema con C#

Hola.

Primeramente amigo no creo que para hacer un login usar dataset y datatable sea lo mas recomendado, y otra cosa siempre en tus query usa parametros te ahorras muchos problemas.

Has lo siguiente.

Código C:
Ver original
  1. private bool Autenticar(string usuario, string password)
  2. {
  3.         string sql = @"SELECT COUNT(*)
  4.                              FROM Usuarios
  5.                              WHERE usuario = @user AND contraseña = @pass";
  6.  
  7.         using (SqlConnection conn = new SqlConnection(@"server=.\PACO;user=paco12;password=graduado12;database=VideoClub;"))
  8.         {
  9.             conn.Open();//abrimos conexion
  10.  
  11.             SqlCommand cmd = new SqlCommand(sql,conn);
  12.             cmd.Parameters.AddWithValue("@user", usuario);
  13.             cmd.Parameters.AddWithValue("@pass", password);
  14.  
  15.             int count = Convert.ToInt32(cmd.ExecuteScalar());
  16.            
  17.             if (count == 0)
  18.                 return false;
  19.             else
  20.                 return true;
  21.  
  22.         }
  23. }
Tienes un método de tipo bool que si devuelve true es que el logeo se realizo con exito si devuelve false es porque los datos son incorrectos como veras te ayudas de la función count del sql y del metodo ExecuteScalar() del objeto command para comprobar el logueo.

Entonces para hacer el login solo llamarías al método y le pasas los parámetros.
Código C:
Ver original
  1. If(!Autenticar(txtUsu.Text, txtCon.Text))
  2.     MessageBox.Show("Usuario o Contraseña Invalidos");
  3. else
  4. {
  5.    //Si entra aquí es porque el usuario se logueo correctamente
  6. }

Saludos.
__________________
Visita mi Blog C#, vb.net, asp.net, sql, java y mas...
Blog Cristian Torres