Ein Listview in C# hat die gute Eigenschaft, tabellarisch die Elemente aus einer Datenbank darzustellen.
In meinem Beispiel hier, möchte ich zeigen wie man eine Liste mit mehreren Datenbankeinträgen gespeichert, einem Listview übergibt.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | private void Fahrten_Load(object sender, EventArgs e) { //Löschen aller eventuellen Einträge aus dem Listview listViewAlleFahrten.Items.Clear(); /*Instanzieren des Objektes List "fahrten" * in welcher alle Fahrten gespeichert sind */ fahrtGLogic fahrten = new fahrtGLogic(); //Header (Überschriften) Listview, Nachkommastelle = Breite des Feldes listViewAlleFahrten.Columns.Add("Startkm", 75); listViewAlleFahrten.Columns.Add("Endkm", 75); listViewAlleFahrten.Columns.Add("Nummernschild", 100); listViewAlleFahrten.Columns.Add("Nutzungsart", 100); listViewAlleFahrten.Columns.Add("Zweck", 150); listViewAlleFahrten.Columns.Add("Startdatum", 80); listViewAlleFahrten.Columns.Add("Enddatum", 80); //Auslesen einzelner Elemente (Fahrten) aus der Liste foreach (Fahrt a in fahrten.getFahrt()) { /*Befüllen der einzelnen Zeilen(Items) im Listview * Hier muss das String Array die selbe Länge haben, * wie Spalten im Listview * Listview benötigt zum Darstellen das Format String */ listViewAlleFahrten.Items.Add(new ListViewItem(new string[7] { Convert.ToString(a.pStartkm), Convert.ToString(a.pEndkm), a.Nummernschild, a.pNutzungsart, a.pZweck, Convert.ToString(a.pStartdatum.Date.ToShortDateString()), Convert.ToString(a.pEnddatum.Date.ToShortDateString()) } )); } } |
Viel Spass beim Nachcoden.









Gaanz wichtig, ich bin heute hier bald irre geworden, denn mein eigenes Tutorial wollte nicht funktionieren, bis uns hier aufgefallen ist, dass das Listview im Entwurfsmodus, in dem ListView Aufgaben Dialog (oben rechts der Pfeil), bei der Ansicht von LargeIcons auf Details eingestellt werden muss ….
schade hätteste mal den Punkt eingebaut, wo du die Daten aus der Datenbank in das Datenobjekt packst. Verzweifel gerade ein wenig, wie ich das Datum (MySQl – Date) wieder in das Datenobjekt bekomme :(
Aber das Projekt kenn ich doch irgend wo her …
HI Sven, hmm was brauchste denn?
Ist doch nur der Connection String?! Dann via read() in die List einlesen.
Hi
vllt guck ja nochmal jemand hier rein.
fahrtGLogic fahrten = new fahrtGLogic();
da kommt bei mir immer das das nicht gefunden worden konnte hmm
Hallo Mirko,
schildere Dein Problem doch mal etwas genauer ;)
die listview wird immer nur mit dem ersten Element der Datenbank gefüllt, wo ist der Fehler????
private void listviewFuellen()
{
try
{
con.Open();
cmd.CommandText = “select * from ” + tabelle; //??????????????
ausgabe();
}
catch (Exception ex)
{
MessageBox.Show(“ListViewFüllen: ” + ex.Message);
}
con.Close();
}
private void ausgabe()
{
try
{
reader = cmd.ExecuteReader();
}
catch (Exception ex) {
MessageBox.Show(“Ausgabe” + ex.Message);
}
listView1.Items.Clear();
listView1.Columns.Clear();
listView1.Columns.Add(“Datum”, 100);
listView1.Columns.Add(“Firma”, 100);
listView1.Columns.Add(“Bauleiter”, 100);
listView1.Columns.Add(“Stunden”, 100);
foreach (Object text in reader)
{
listView1.Items.Add(new ListViewItem(new String[4]
{
Convert.ToString(reader["Datum"]),
Convert.ToString(reader["Firma"]),
Convert.ToString(reader["Bauleiter"]),
Convert.ToString(reader["Stunden"])
}
));
}
reader.Close();
}
Hallo Micha, Du muss den Teil wo du die Items hinzufügst in eine Schleife packen, solange wie dein Reader die Datensätze einliest.
while(reader.Read())
{
// hier items adden
}
Hi,
Ich komme da bei dem fahrtGLogic fahrten = new fahrtGLogic(); irgendwie nicht mehr weiter kann mir irgend jemand helfen.
Was bedeutet es überhaupt?
Hallo Jeanmy
Mit “fahrtGLogic fahrten = new fahrtGLogic();” erstellst (instanziierst) du eine neue Kopie der Klasse fahrtGLogic. In diesem Beispiel, welches auch schon recht alt ist, ist dieses Klasse leider nicht aufgeführt.