SQL Daten in Windows Forms anzeigen
-
Hallo Zusammen
Ich bin neu hier und hoffe das Thema gehört hier hin.
Ich möchte die Ergebnisse einer SQL Abfrage in einer Windows Forms Anwendung,
"Listbox"/"Listview" anzeigen.Verbindung zur DB, SQL Query in c#, alles kein Problem. Aber was ich seit Tagen versuche und einfach nicht schaffe ist:
Wie kann ich dieses Ergebnis, also eine oder mehrere Zeilen mit ca. 10 Attributen, in einer Liste anzeigen.
(Die SQL Query hat Variablen die ich in einer "TextBox" eingeben kann z.B.
SELECT * FROM tabelle WHERE attribut LIKE @variabel)Das auslesen habe ich schon mal mit "DataReader" probiert und zum anzeigen eine "ListView".
Funktioniert immer nur so halb und ich finde einfach kein brauchbares Beispiel.
Kann mir jemand einen Beispielcode geben?
Das kann ja eigentlich nicht so kompliziert sein. Ist ja eigentlich nur ein Auslesen/Abspeichern und dann eine Ausgabe.
Danke im Voraus
Gruss
-
Du willst die ausgelesene Daten in einer Listbox anzeigen? Ja was liest du denn da aus? Was sind denn das für Daten, weil dementsprechend musst du ja die Ausgaben anpassen.
-
Mit was ich die Daten anzeige ist eigentlich egal. Ich glaube die ListView ist dafür optimal. Es sollte dann ähnlich aussehen wie wenn man im sql server management studio einen SELECT befehl ausführt.
Es handelt sich um Kundendaten: Kunden_ID int, VorName varchar, Nachname varchar, Email, Geburtsdatum...usw.
-
Naja dann würde ich mir an deiner Stelle eine Wrapper Klasse anlegen
public class Kunde { //öffentlicher setter nur zu demonstrationszwecken, denk dir einen ordentlichen Ctor aus public int KundenNr{get;set;} //und der ganze rest }
Und dann befüllst du erstmal diese Datenklasse mit deinem Datareader
SqlDatareader reader = new SqlDataReader(); //irgendwelche intialisierungen List<Kunde> kunden = new List<Kunde>(); while(reader.Read() { Kunden k = new Kunde(); k.KundeNr = (int)reader["KundenNr"]; //usw mit den anderen Kundendaten kunden.Add(k); }
Und dann bindest du das an das ListView
this.ListView.DataSource = kunden;
Das ist nur Schematisch, weil ich deinen Code nicht kenne, also keine Garantie für Lauffähigkeit.
-
Hey Firefighter
Danke für deine rasche Antwort.
Genau so ein Beispiel habe ich gesucht.
Werde das ganze morgen testen und mich wieder melden, werde bestimmt noch ein paar Fragen haben:-)Schönen Abend
Gruss
-
basic1 schrieb:
Mit was ich die Daten anzeige ist eigentlich egal. Ich glaube die ListView ist dafür optimal. Es sollte dann ähnlich aussehen wie wenn man im sql server management studio einen SELECT befehl ausführt.
Es handelt sich um Kundendaten: Kunden_ID int, VorName varchar, Nachname varchar, Email, Geburtsdatum...usw.
Dafür gibt es das GridView, schau Dir das mal genauer an.
-
ListView unterstützt (leider) kein Databinding.
Und daher ist das 'DataGridView' die beste Klasse dafür (GridView gibt es nur bei Web-Projekten bzw. bei WPF!).Hier noch ein Link zum Vergleich beider Controls: http://www.mycsharp.de/wbb2/thread.php?threadid=52180 (bzw. wie man ein DataGridView so anpaßt, daß es wie ein ListView aussieht).
-
Zuerst mal Danke für die kompetenten Antworten.
Firefighter, Dein Code konnte ich fast 1:1 übernehmen, wie von loks und Th69
erwähnt musste ich die ListView durch das DataGridView ersetzen und alles funktionier einwandfrei.Echt stark dieses DataGridView. Gibt eine wunderbare Tabelle aus.
So macht Programmieren spass
Nochmals vielen Dank
Gruss