Announcement

Collapse
No announcement yet.

Doppelte Datensätze

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Doppelte Datensätze

    Hallo
    Ich möchte gerne über den Datenadapter Daten ins Listview bekommen .Also alle Sätze und Spalten.
    Die Spalten hole ich mir über
    "for (int i = 0; i <= dt.Columns.Count -1; i++)
    {
    listView1.Columns.Add(dt.Columns[i].ToString(),100,HorizontalAlignment.Center);
    }"
    dies funktioniert auch super,aber mit den Items und Subitems da knallt es ohne ende.
    bzw. ich hole mir den 1. Satz mit

    foreach(DataRow myrow in dt.Rows)
    {

    listView1.Items.Add(myrow[0].ToString()); //1. Spalte vollhaun

    for(int z = 1; z<= columns.Length; z++)
    {

    listView1.Items[0].SubItems.Add(myrow[z].ToString()); //z ste Spalte (subitem) füllen

    }

    }

    Keine Fehler,bzw ich bekomme nicht alle Sätze nur die erste Spalte hat 3 Werte (Also 3 Sätze sind vorhanden) ich habe alles ausprobiert ich bin einfach zu blöd ne einfache schleife zu baun so das alle Spalten/Rows im Listview stehen.Und das beste ist ich bekomme doppelte Datensätze nach jedem button_Click .
    Hab schon ein Table Clear nützt da leider nichts .

    Kann mir jemand weiter helfen ????

    Danke

    Die Formatierung ist jetzt sehr Wahrscheinlich etwas durcheinader .

  • #2
    Hallo,

    das folgende Beispiel demonstriert das Darstellen des Inhalts einer DataTable-Instanz in einem ListView-Control:
    <pre>
    <b>private</b> <b>void</b> button1_Click(<b>object</b> sender, System.EventArgs e)
    {
    <font color="#003399"><i>//neue DataTable erzeugen</i></font>
    DataTable aNewDataTable = <b>new</b> DataTable();
    aNewDataTable.Columns.Add(<font color="#9933CC">&quot;Nachname&quot;</font>, <b>typeof</b>(<b>String</b>));
    aNewDataTable.Columns.Add(<font color="#9933CC">&quot;Vorname&quot;</font>, <b>typeof</b>(<b>String</b>));
    aNewDataTable.Columns.Add(<font color="#9933CC">&quot;Alter&quot;</font>, <b>typeof</b>(Int32));
    <font color="#003399"><i>// Primärschlüssel</i></font>
    aNewDataTable.PrimaryKey = <b>new</b> DataColumn[] {aNewDataTable.Columns[0],aNewDataTable.Columns[1]};
    aNewDataTable.MinimumCapacity = 10;
    <font color="#003399"><i>// Datensätze eintragen </i></font>
    aNewDataTable.Rows.Add(<b>new</b> <b>Object</b>[] {<font color="#9933CC">&quot;Kosch&quot;</font>, <font color="#9933CC">&quot;Andreas&quot;</font>, 42});
    aNewDataTable.Rows.Add(<b>new</b> <b>Object</b>[] {<font color="#9933CC">&quot;Mustermann&quot;</font>, <font color="#9933CC">&quot;Manfred&quot;</font>, 50});
    aNewDataTable.Rows.Add(<b>new</b> <b>Object</b>[] {<font color="#9933CC">&quot;Ritz&quot;</font>, <font color="#9933CC">&quot;Bernd&quot;</font>, 45});
    <font color="#003399"><i>// Ergebnis anzeigen</i></font>
    dataGrid1.DataSource = aNewDataTable;
    <font color="#003399"><i>// Daten ebenfalls im ListView anzeigen</i></font>
    listView1.View = View.Details;
    <b>for</b> (<b>int</b> i = 0; i &lt;= aNewDataTable.Columns.Count -1; i++)
    {
    listView1.Columns.Add(aNewDataTable.Columns[i].ToString(),100,HorizontalAlignment.Center);
    }
    listView1.BeginUpdate();
    ListViewItem aLVI;
    <b>foreach</b> (DataRow aRow <b>in</b> aNewDataTable.Rows)
    {
    aLVI = <b>new</b> ListViewItem(aRow[0].ToString());
    aLVI.SubItems.Add(aRow[1].ToString());
    aLVI.SubItems.Add(aRow[2].ToString());
    listView1.Items.Add(aLVI);
    }
    listView1.EndUpdate();
    }
    </pre>
    &gt;..ich bekomme doppelte Datensätze nach jedem button_Click ...

    Auch das ist in diesem Fall "normal", denn die Darstellung im ListView-Control hat ja keinen Einfluss auf den Inhalt der DataTable-Instanz. Wenn die ListView zur Laufzeit mehrfach gefüllt werden soll, müssen vorher alle alten Einträge entfernt werden

    Comment

    Working...
    X