Wie kann man Daten aus einer SQL Server-Datenbank in C# abrufen?
Ich habe eine Datenbanktabelle mit 3 Spalten Vorname
, Nachname
und Alter
. In meiner C#-Windows-Anwendung habe ich 3 Textfelder mit dem Namen "textbox1"... Ich habe meine Verbindung zu meinem SQL Server mit diesem Code hergestellt:
SqlConnection con = new SqlConnection("Data Source = .;
Initial Catalog = domain;
Integrated Security = True");
con.Open();
SqlCommand cmd = new SqlCommand("Select * from tablename", con);
Ich möchte Werte aus meiner Datenbank abrufen; wenn ich einen Wert in textbox1
eingebe, muss er mit den Werten in der Datenbank übereinstimmen und andere Details zu den entsprechenden Textboxen abrufen.
Ich habe diese Methode ausprobiert, aber sie funktioniert nicht:
cmd.CommandText = "select * from tablename where firstname = '" + textBox1.Text + "' ";
Wie kann ich alle anderen Werte in den Textfeldern abrufen?
33
3
Hier gibt es ein paar Dinge zu beachten: Ich habe eine parametrisierte Abfrage verwendet, die Ihren Code sicherer macht. Die Art und Weise, wie Sie die select-Anweisung mit dem Teil
"where x = "+ Textbox.Text +""
erstellen, eröffnet Ihnen die Möglichkeit einer SQL-Injection.Ich habe dies geändert in:
Dieser Codeblock wird also Folgendes bewirken:
Er führt eine SQL-Anweisung in Ihrer Datenbank aus, um zu sehen, ob es Vornamen gibt, die mit dem von Ihnen angegebenen Namen übereinstimmen. Wenn dies der Fall ist, wird diese Person in einem Person-Objekt gespeichert (siehe unten in meiner Antwort für die Klasse). Wenn es keine Übereinstimmung gibt, sind die Eigenschaften des Person-Objekts "null".
Offensichtlich weiß ich nicht genau, was Sie zu tun versuchen, also gibt es ein paar Dinge zu beachten: Wenn es mehr als eine Person mit einem passenden Namen gibt, wird nur die letzte gespeichert und an Sie zurückgegeben. Wenn Sie diese Daten speichern möchten, können Sie sie in eine
Liste
einfügen.Person Klasse hinzufügen, um es sauberer zu machen:
Jetzt rufen wir die Methode auf:
Sie können dann Ihre Textfelder mit Werten aus dem Person-Objekt wie folgt füllen:
eine Klasse namens DbManager erstellen:
dann doppelklicken Sie auf die Abruf-Schaltfläche (z.B. btnretrieve) in Ihrem Formular und fügen den folgenden Code ein:
Zum Abrufen von Daten aus der Datenbank: