Web- und Software Development

Listview aus Datenbank fuellen / Tutorial Csharp .NET

Written By: Mario Priebe - Aug• 09•08

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.

Ähnliche Beiträge

You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.

10 Comments

  1. Mario sagt:

    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 ….

  2. Sven sagt:

    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 …

  3. Mario Priebe sagt:

    HI Sven, hmm was brauchste denn?
    Ist doch nur der Connection String?! Dann via read() in die List einlesen.

  4. Mirko sagt:

    Hi
    vllt guck ja nochmal jemand hier rein.
    fahrtGLogic fahrten = new fahrtGLogic();

    da kommt bei mir immer das das nicht gefunden worden konnte hmm

  5. Mario Priebe sagt:

    Hallo Mirko,

    schildere Dein Problem doch mal etwas genauer ;)

  6. Micha sagt:

    die listview wird immer nur mit dem ersten Element der Datenbank gefüllt, wo ist der Fehler????

  7. Micha sagt:

    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();
    }

  8. Mario Priebe sagt:

    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
    }

  9. Jeanmy sagt:

    Hi,
    Ich komme da bei dem fahrtGLogic fahrten = new fahrtGLogic(); irgendwie nicht mehr weiter kann mir irgend jemand helfen.
    Was bedeutet es überhaupt?

  10. Mario Priebe sagt:

    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.