C# SELECT liefert kein Ergebnis

Deletemaster

Erfahrenes Mitglied
Hallo zusammen,

ein neues Problem:

In meiner DB-Tabelle sind 150.000 Datensätze, diese sind eindeutig durch VRN (VollständigeRufnummer zB. "0301234567" als Text)

Ich führe folgende Abfrage aus und bekomme nichts zurückgeliefert:


Code:
private void Daten_Laden()

{

conn.Open();

OdbcCommand cmd = new OdbcCommand();

cmd.Connection = conn;

cmd.Parameters.Add("@vrn", txt_VRN.Text);

cmd.CommandText = "SELECT * FROM tabelle1 WHERE vrn = @vrn";

OdbcDataReader reader = cmd.ExecuteReader();

while ( reader.Read())

{

txt_Vorname.Text = reader["vorname"].ToString();

txt_Nachname.Text = reader["nachname"].ToString();

}

reader.Close();
}
 
Ich weiß zwar nicht genau, was es mit cmd.Parameters.Add auf sich hat, zumindest würde ich es folgendermaßen angehen:

Code:
private void Daten_Laden()
{
   conn.Open();

   OdbcCommand cmd = new OdbcCommand();
   cmd.Connection = conn;
   cmd.CommandText = "SELECT * FROM tabelle1 WHERE vrn = '" + txt_VRN.Text + "'";

   OdbcDataReader reader = cmd.ExecuteReader();

   while ( reader.Read())
   {
      txt_Vorname.Text = reader["vorname"].ToString();
      txt_Nachname.Text = reader["nachname"].ToString();
   }

   reader.Close();
}

Viele Grüße,

MAN
 
Dann guck dir mal an welche Bedeutung Parameter in SQL-Statements haben. Zugleich kannst du dich auch über SQL Injections schlau machen, dann kennst du den Sinn dahinter ;-)

Zusammenfassend: Parameter verwenden und keine zusammengestückelten Konstrukte, denn so reiss man dir deinen Datenbankserver auf, dass dir schwarz um deine Augen wird.
 
Zurück