Inicio de sesión y contraseña con C#
ahlam1
Mensajes publicados
33
Estado
Miembro
-
karima -
karima -
Buenas noches,
soy principiante en C#
quiero un código que me permita verificar si la palabra de pase y el login que el usuario ha introducido se encuentran en mi tabla (estoy trabajando con Access)
he escrito este código en el botón de conectar pero no funciona:
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;..........
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT COUNT(login) FROM utilisateur WHERE login= ' " + textBox1.Text + "' AND motdepasse= '" + textBox2.Text + "'";
cmd.Connection = con;
Int32 cin = (Int32)cmd.ExecuteScalar();
if (cin<0)
{
MessageBox.Show("attention :Le mot de passe ou le login est incorrecte");
}
else {
MessageBox.Show("vous êtes connecter");
choixDeService cds = new choixDeService();
cds.Show();
}
con.Close();
si quelqu’un peut me donner le code ou me corriger celui la je serai très reconnaissante
merci d’avance
soy principiante en C#
quiero un código que me permita verificar si la palabra de pase y el login que el usuario ha introducido se encuentran en mi tabla (estoy trabajando con Access)
he escrito este código en el botón de conectar pero no funciona:
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;..........
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT COUNT(login) FROM utilisateur WHERE login= ' " + textBox1.Text + "' AND motdepasse= '" + textBox2.Text + "'";
cmd.Connection = con;
Int32 cin = (Int32)cmd.ExecuteScalar();
if (cin<0)
{
MessageBox.Show("attention :Le mot de passe ou le login est incorrecte");
}
else {
MessageBox.Show("vous êtes connecter");
choixDeService cds = new choixDeService();
cds.Show();
}
con.Close();
si quelqu’un peut me donner le code ou me corriger celui la je serai très reconnaissante
merci d’avance
Configuration: Windows 7 / Firefox 3.5.8
9 respuestas
-
hola,
hay una pequeña error creo aquí: if (cin<0) hay que poner if ( cin =< 0) o if (cin==0)
porque cmd.ExecuteScalar(); nos devuelve 0 sí hay registros es el número de registros sí hay realmente registros así que tu caso devolverá 1 porque hay un único registro que corresponde a tu criterio
por otro lado no he entendido el papel de esta parte del código ¿podrías explicárnoslo?
choixDeService cds = new choixDeService();
cds.Show();
Publicidad eliminada Moderación CCM -
buenas noches,
gracias por su respuesta
pero probé con ( cin <= 0) y (cin==0) pero no funciona
si tienes otra idea o otra solución ........
para
choixDeService cds = new choixDeService();
cds.Show();
choixDeService es una forma
quería decir si la contraseña y el login son correctos entonces abrir esa forma
muchas gracias -
OleDbCommand cmd = new OleDbCommand();
cmd.CommandText = "SELECT COUNT(*) FROM utilisateur WHERE login= '" + textBox1.Text + "' AND motdepasse= '" + textBox2.Text + "'";
cmd.Connection = con;
con.Open();
Int32 cin = (Int32)cmd.ExecuteScalar();
if (cin==0)
{
MessageBox.Show("vous êtes connecter");
choixDeService cds = new choixDeService();
cds.Show();
}
else {
MessageBox.Show("attention :Le mot de passe ou le login est incorrecte");
}
con.Close(); -
no funcionó
lo que dices permite que el usuario se conecte incluso si el nombre de usuario o la contraseña son incorrectos -
hola,
cmd.ExecuteScalar() : devuelve 0 si no hay registros y el número en el caso contrario, ¿es así?
en su caso: devolverá 1 si la contraseña y el login son correctos y 0 en el caso contrario ?
por lo tanto :if (cin!=0)
{
MessageBox.Show("usted está conectado");
choixDeService cds = new choisDeService();
cds.Show();
}
else {
MessageBox.Show("cuidado: la contraseña o el login son incorrectos");
}
con.Close();
¿hay errores en su base de datos?
Publicidad eliminada Moderación CCM -
sí, claro que existen ERG en la BD
intento, pero ejecuta el else incluso si escribo el login y la contraseña correctos
si tienes alguna otra idea, sería formidable
-
Hola;
intenta con un sqldatareader
SqlDataReader dr = default(SqlDataReader);
int r = 0;
cmd = new SqlCommand("select count(*) from pl where login = '" + TextBox1.Text + "' and passe = '" + TextBox2.Text + "'", cnx);
cnx.Open();
dr = cmd.ExecuteReader;
dr.Read();
r = dr(0);
dr.Close();
cnx.Close();
if (r != 0)
{
MessageBox.Show("vous êtes connecter");
}
else {
MessageBox.Show("attention :Le mot de passe ou le login est incorrecte");
}
} -
(mientras trabajo con Access y no con SQL Server, cambiaré su programa para las datos aceptados por Access como SqlDataReader mediante OleDbDataReader) pero
dr es una variable, no es un método; no podemos usar dr(0)
no lo acepta -
OleDbDataAdapter da = new OleDbDataAdapter("select * from Users where Login='" + tlogin.Text + "' and Password='" + tpassword.Text + "'", Program.con);
DataSet ds = new DataSet();
da.Fill(ds);
if (ds.Tables[0].Rows.Count != 0)
{
MessageBox.Show("Bienvenu ", "Bienvenue", MessageBoxButtons.OK, MessageBoxIcon.Information);
GPDR09 f = new GPDR09();
f.Show();
this.Hide();
}
else
MessageBox.Show("Votre Nom ou Password est incorect");
tlogin.Clear();
tpassword.Clear();