none
Recorrer una lista y comprar datos de la misma RRS feed

  • Pregunta

  • Buenas noches, recién estoy entrando al mundo de la programación estoy intentando hacer un login en C#  asp.net con una base de datos en sql server. Estoy leyendo y viendo videos pero no entiendo como hacer que me recorra la lista del sql y me compare los datos de usuario y contraseña por ahora estoy así

    protected void Button1_click(object sender, eventArgs e) 
    {
      conexion.conectar();
     sqldataAdapter da=new sqldataAdapter  ("select coun(*) form Usuario where id='" + txtid.text+ "' and contraseña ='" + txtcontraseña.text+"'",conexion.conectar()):
    datatable dt = new datatable();
    da.fill.(dt)
    }

    se le agradece su ayuda y si es con una explicación me ayudaría mucho mas



    martes, 10 de noviembre de 2020 3:56

Todas las respuestas

  • En vez de un DataAdapter usa un SqlCommand y luego llama al método ExecuteScalar(), si ExecuteScalar te devuelve 1 es que el usuario y la contraseña están bien.

    Un consejo, usa consultas parametrizadas, concatenar cadenas con datos que ha introducido el usuario es muy peligroso porque es vulnerable a la inyección de código SQL. ¿Conoces a Bobby Tables?

    https://bobby-tables.com/

    martes, 10 de noviembre de 2020 5:50
  • Hola Iván

    En select count(*) te faltó la t. 

    Suponiendo que conexion.conectar() abre la conexión, al SqlDataAdapter se le pasa un objeto conexión, no un método que abre la conexión, además que no hay que abrirla 2 veces, y hay que cerrarla no bien no sea más necesario que esté abierta (por eso se le llama "modelo desconectado").

    Esto, agregalo a lo que ya te dijo Jesús, que es poner tu consulta en un SqlCommand y ejecutar su método ExecuteScalar(), si éste da 1 es que el login tuvo éxito.

    SqlCommand command = new SqlCommand("select count(*) from Usuario where id='" + txtid.Text+ "' and contraseña ='" + txtcontraseña.Text+"'", conexionYaAbierta);
    
    if (command.ExecuteScalar() == 1)
        hacerAlgo(); // el login tuvo éxito
    ExecuteScalar() de SqlCommand se usa sólo cuando la consulta devuelve sólo un número, y el método devuelve ese número. 

    Saludos

    Pablo

    martes, 10 de noviembre de 2020 10:35
  • Hola Ivan Cepeda, 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

    Espero su respuesta.  

    Gracias por usar los foros de MSDN.  

    Andres Aguilar 

    ____________________________  

     

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN sientase en la libertad de contactar  MSDNFSF@microsoft.com. 

    martes, 10 de noviembre de 2020 16:59
    Moderador
  • la verdad que no, como mencione antes recien estoy aprendiendo es mi tercera clase
    miércoles, 11 de noviembre de 2020 4:06
  • Hola Ivan Cepeda,

    puedes seguir este tutorial ahi muestra como hacer un login con asp.net 

     

     Andres Aguilar

    ____________________________ 

    miércoles, 11 de noviembre de 2020 15:38
    Moderador