Kezdőoldal » Számítástechnika » Programozás » Miért nem jó az összehasonlítás?

Darika185 kérdése:

Miért nem jó az összehasonlítás?

Figyelt kérdé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();

}



2020. ápr. 7. 17:45
 1/3 anonim ***** válasza:

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.

2020. ápr. 7. 18:31
Hasznos számodra ez a válasz?
 2/3 A kérdező kommentje:
Próbáltam. Valamiért a count értéke 0 lesz, ha több felhasználó van írva a txt-be. Viszont ha csak egyet írok be tökéletesen le fut.
2020. ápr. 7. 19:20
 3/3 anonim ***** válasza:

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.

2020. ápr. 7. 23:09
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!