Miért nem jó az összehasonlítás?
Azt próbálom össze hozni, hogy adott egy belépés form. A formban található egy combobox ami txt fájlból kapja meg az "item"-et plusz található egy textbox ahová a jelszó kerül beírásra. Mindezt egy adatbázisban létrehozott táblával vetné össze, de hiába jó a megegyezik a táblázattal a kiválasztott felhasználó és a be írt jelszó fel dobja, hogy rossz felhasználó. Esetleg tipp miért?
a form:
private void belepes_Load(object sender, EventArgs e)
{
StreamReader sr = new StreamReader(@"C:\felhasznalo\felhasznalo.txt");
string x = sr.ReadToEnd();
string[] y = x.Split('\n');
foreach (string s in y)
{
comboBox1.Items.Add(s);
}
}
public void button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\felhasznalo\Adatbázis2.accdb");
OleDbDataAdapter sda = new OleDbDataAdapter("Select * From Tábla1 Where Felhasznalo='" + comboBox1.Text + "' and Jelszo='" + textBox2.Text + "' ", con);
DataTable dt = new System.Data.DataTable();
{
FileStream fs = new FileStream(@"C:\belepes\log.txt", FileMode.Append);
StreamWriter sr = new StreamWriter(fs);
sr.Write("felhasznalo;" + comboBox1.Text);
var ido = DateTime.Now;
sr.Write(";{0:d}", ido);
sr.Write(";{0:T}\r\n", ido);
sr.Close();
fs.Close();
}
sda.Fill(dt);
if (dt.Rows.Count == 1)
{
futas.checkBox1.Checked= true;
this.Close();
futas.Show();
}
else
{
MessageBox.Show("Rossz felhasználó vagy jelszó");
textBox2.Clear();
}
Ezt így nem látom át.
Azonban mivel .NET amit használsz, mi sem könnyebb, mint debug módban végiglépkedni soronként, és nézni a változók értékét.
Így meg fogod találni, hol száll el valamelyik érték.
Gondolom windows alatt szekeszted a felhsznalo.txt-t és így a sorvegi karakterek \r\n lesz.
Amirt ha splittelsz \n-ek mentén ott marad a \r a sorok végén... és a db-ben nincs ott a \r.
Mellesleg elég sql injectionös a kódod, nem szép sql queryt így összerakni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!