For Each Schleife 2 Variablen?

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    For Each Schleife 2 Variablen?

    Hallo,

    habe ein kleines DataGridView was ich mittels My.Settings speichern und laden will. Ich speichern die jede Spalte mittels einer For Each Schleife sieht dann etwas so aus:

    VB.NET-Quellcode

    1. Dim zeilenanzahl As Integer = dgvSender.Rows.Count - 1
    2. For a = 0 To zeilenanzahl - 1
    3. TextBox1.AppendText(dgvSender.Rows(a).Cells(0).Value & ";")
    4. My.Settings.spalte1 = TextBox1.Text
    5. My.Settings.Save()
    6. My.Settings.Reload()
    (selbe auch für Spalte2)
    Dies funktioniert auch. Nun muss ich das ganze auch wieder in das DGV laden. Nur weiß ich nicht wie das mit 2 Items mache. Hier mal mein Code für Spalte1 (funktioniert!):

    VB.NET-Quellcode

    1. Dim Spalte1Raw As String = My.Settings.Spalte1
    2. Dim Item1() As String = ChannelSenderRaw.Split(";")
    3. For Each Spalte As String In Item1
    4. dgvSender.Rows.Add(Spalte)
    5. Next


    Hoffe das ihr da mehr wisst als ich.

    P.S.: Möchte keine Vorschläge wie ich DGV's mit DataSet oder sonst was speicher/lade.
    Ich würde es mit einer DataTable tun, leider kann ich Dir diesen Vorschlag nicht machen, da Du ihn nicht hören willst. :S
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Erstelle ein neues DataSet.
    (Projekt ->hinzufügen-> DataSet)
    Im DataSet Designer erstellst du einen neuen DataTable mit Spalten.
    Füge im Designer der Form dem Dgv diesen DataTable als Datenquelle hinzu
    Lade das Dataset mit Dataset.ReadXml(XmlPath), speichere es mit DataSet.WriteXml(XmlPath)

    Gruss Mono
    Das ist meine Signatur und sie wird wunderbar sein!
    @Mono war schnellerer

    Datatable/Dataset ist das Mittel der Wahl dafür. Monos Beitrag ist dabei äußerst einfach, da zu 90% mit DragDrop zusammenzustöpseln. Wenn du nur 1 Tabelle brauchst gehts natürlich auch mit ner Datatable ohne Dataset, ist aber dann halt "Handarbeit" (aber überschaubar)

    Hier kannst du mal bischen nachlesen/rumprobieren
    Und hier die Klassendoku von MSDN mit allen Membern.
    Und hier ist noch ein guter Beitrag von Erfinder des Rades: DatasetOnly

    In einer Datatable speicherst du deine Variablen. Deinem Datagridview gibst du diese Table als Datasource (Stichwort Databinding). Damit werden dein DGV und die Table automatisch miteinander synchronisiert.
    Die Table lässt sich dann als 1-Zeiler mit DeineDatatable.WriteXML(Pfad) speichern und mit DeineDatatable.ReadXML(Pfad) wieder laden.

    Fiel Fergnügen

    Vatter
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup: