Foros del Web » Programación para mayores de 30 ;) » .NET »

login datareadader C# Winform

Estas en el tema de login datareadader C# Winform en el foro de .NET en Foros del Web. llevo esto utilizo tabla de DB en SQL en donde tengo dos campos user, pass de la tabla "tablon" tengo error de sintaxis en select ...
  #1 (permalink)  
Antiguo 13/04/2010, 11:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
login datareadader C# Winform

llevo esto utilizo tabla de DB en SQL en donde tengo dos campos user, pass de la tabla "tablon"

tengo error de sintaxis en select y no estoy seguro de que la lógica condicional esté bien. comparto el código, me gustaria dejarlo funcionando para compartirlo con los demas usuarios.

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ejercicioUserPass
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection conn;
            conn = new SqlConnection();
            conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\DataBases\\users.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            conn.Open();

            string strSQL = "SELECT FROM tablon WHERE user = '" + textBox1.Text + "' and pass = '" + textBox2.Text + "'";
            SqlCommand cmd = new SqlCommand(strSQL, conn);

            SqlDataReader dr = cmd.ExecuteReader();
            

            try
            {
                while(dr.Read())
                {
                    if (dr.Read())
                    {
                        MessageBox.Show("Usuario reconocido");
                        Form1 logeo = new Form1();
                        Form2 main = new Form2();

                        logeo.Hide();
                        main.Show();

                    }
                    else
                        MessageBox.Show("Usuario NO reconocido");

                }

            }
            finally
            {
                dr.Close();
                conn.Close();
            }

        }
    }
}
  #2 (permalink)  
Antiguo 13/04/2010, 11:37
 
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: login datareadader C# Winform

esto no molesta???

Timeout=30;

a mi me ayudaron con esto:

Cita:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.Data;

namespace classlibrarySysmin
{
public class usuario
{

public bool BuscarUsuario(string xnombre, string xpass)
{
Conexion cnn = new Conexion();
SqlConnection cn = new SqlConnection(cnn.LeerCadenaConexion());
SqlCommand cmd = new SqlCommand("tb_usuarioSeek", cn);
cmd.Connection = cn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@usu_nombre",xnombre) ;
cmd.Parameters.AddWithValue("@usu_pass", xpass);
try
{
cn.Open();
SqlDataReader lector = cmd.ExecuteReader(CommandBehavior.CloseConnection) ;
if (lector.HasRows == true)
{
return true;
}
else
{
return false;
}

}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
cn.Dispose();
cmd.Dispose();
}
}
}
}
  #3 (permalink)  
Antiguo 13/04/2010, 12:46
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: login datareadader C# Winform

cro que el timeout no es problema, en ese código en que punto comparo con
los datos ingresados por el usuario en texbox1 y texbox2 correspondientes a
Usuario y contraseña respectivamente.
  #4 (permalink)  
Antiguo 13/04/2010, 13:20
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 20 años
Puntos: 8
Respuesta: login datareadader C# Winform

Hola en principio tu código se sale de las mejores prácticas de programación, es mejor que uses un Stored Procedure de SQL para tu select y lo ejecutes desde tu código, date una vuelta por mi Blog y ahí encontraras información para hacer mejor tu programación y créeme que en un futuro será más fácil en todos los sentidos.

Saludos.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #5 (permalink)  
Antiguo 13/04/2010, 13:23
 
Fecha de Ingreso: marzo-2010
Mensajes: 18
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: login datareadader C# Winform

Ok hice unas modificaciones en la línea select ahora el programa funciona sin errores el problema es que no hace nada, ingreso un usuario y contraseña conocidos (ingresados en la tabla) y no sucede nada.
como información, la base de datos es en sql, son solo dos campos, no tiene clave única y son d tipo nchar, alguna sugerencia ?




Código:
namespace ejercicioUserPass
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private void button1_Click(object sender, EventArgs e)
        {
            SqlConnection conn;
            conn = new SqlConnection();
            conn.ConnectionString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\DataBases\\users.mdf;Integrated Security=True;User Instance=True";
            conn.Open();

            string strSQL = "SELECT user, pass FROM tablon WHERE user = '" + textBox1.Text + "' and pass = '" + textBox2.Text + "'";
            SqlCommand cmd = new SqlCommand(strSQL, conn);

            SqlDataReader dr = cmd.ExecuteReader();
            

            try
            {
                while(dr.Read())
                {
                    if (dr.Read())
                    {
                        MessageBox.Show("Usuario reconocido");
                        Form1 logeo = new Form1();
                        Form2 main = new Form2();

                        logeo.Hide();
                        main.Show();

                    }
                    else
                        MessageBox.Show("Usuario NO reconocido");

                }

            }
            finally
            {
                dr.Close();
                conn.Close();
            }

        }
    }
}

Etiquetas: login, winform
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 11:54.