DataSet / DataTable in DGV anzeigenlassen geht nicht

  • VB.NET

Es gibt 20 Antworten in diesem Thema. Der letzte Beitrag () ist von Fire88.

    DataSet / DataTable in DGV anzeigenlassen geht nicht

    Moien VBler

    Ich versuche mich gerade ein wenig in das DGV einzuarbeiten.
    Und nun hab ich ein kleines aber feines Problemchen, und zwar:


    Ich lese aus eine .ini Daten aus die ich im DGV wiedergeben möchte:

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Sub Main_Frm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. For Each Zeile As String In System.IO.File.ReadAllLines(Application.StartupPath & "/data/data.ini")
    3. Dim Data() As String = Zeile.Split("|||")
    4. DataGrid.Rows.Add(Data(0), Data(1), Data(2), Data(3))
    5. DataGrid.Sort(DataGrid.Columns(1), System.ComponentModel.ListSortDirection.Ascending)
    6. Next
    7. End Sub



    Doch das einlesen geht völlig in die Hose und dies Ohne Fehlermeldung:



    in der .ini ist es so aufgebaut:

    Quellcode

    1. 1|||2|||3|||4
    2. 1|||Nothing|||34|||44



    weis jemand warum es mir die Daten nicht richtig in die Spalten einfügt?

    mfg
    Bilder
    • Debug.png

      136,79 kB, 1.937×973, 162 mal angesehen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fire88“ ()

    Ich nehme an du meinst DataSet. dies hab ich versucht, aber kläglich gescheitert =)

    ich weis nicht ganz wie ich das DataSet einstellen muss wegen den Tabels etc

    mfg

    jo das kommt am ende das Option Strict on =) möchte des erst mal zum laufen bekommen 0)

    Fire88 schrieb:

    eis jemand warum es mir die Daten nicht richtig in die Spalten einfügt
    Hast Du Dir eigemtlich schon einmal angeschaut was er aus Deinem Zeile.Split macht ?

    Ich hab zwar gerade keine IDE in der Nähe, aber mit Option Strict ON sollte er Dir einen Fehler auswerfen, da die String.Split Function nur nach Character Delimitern splitten kann. Überprüf das mal mit dem Debugger.

    Anhand eines Strings "|||" splitten kann nur die alte Microsoft.Visualbasic.Split Function .
    ich hab mir das tut/Vid angesehen, doch er benutzt da ja eine acces DB... ich möchte eig nur in eine datei .ini .xml what ever speichern und dies beim laden des programmes wider anzeigen lassen in der DGV.

    was ich nicht ganz schnalle. wen ich es mit einem DataSet mache. dan kann ich nicht mer über meine "Hinzufügen" Form daten eintragen da dies direkt in das DGV schreiben möchte.
    Ich lese mich nochmals ein wenig durch mit dem DataSet und hoffe das ich fündig werde wie ich da die Daten einfügen kann.

    mfg und Vielen dank für die Raschen AW's

    Fire88 schrieb:

    was ich nicht ganz schnalle. wen ich es mit einem DataSet mache. dan kann ich nicht mer über meine "Hinzufügen" Form daten eintragen da dies direkt in das DGV schreiben möchte
    Du sollst in diesem Fall ja auch nicht in das Datagridview direkt eintrAgen , sondern in das Dataset. Wenn das DatagridView an das Dataset gebunden ist, so erfolgt das Update automatisch ohne Dein Zutun.

    Genauso gut kannst Du an eine Liste binden, nur müsstest Du dann per XMLSerializer speichern (5 Zeilen Code). Das ist im Dataset schon eingebaut (Dataset.WriteXML, Datatable.WriteXML).

    Aber Du hast meine obige Frage nicht beantwortet.
    @Kangaroo
    Wenn du folgendes Programm schreibst:

    VB.NET-Quellcode

    1. Dim testString = "test1split1test2split2test3split3test4"
    2. Dim testArray() = testString.Split({"split1","split2","split3"},StringSplitOption.RemoveEmptyEntries)

    dann stehen in testArray diese Einträge: {"test1","test2","test3","test4"}
    @Kangaroo

    mit "Microsoft.Visualbasic.Split" geht es auch nicht. da geschieht dan garnichts mehr =))

    ich habe das Projekt nun Kopiert und versuche es mit einem DataSet.
    mal sehen wie ich dies bestreite. aber ich stelle mir gleich die Frage:

    Wie soll ich hier das DataSet füllen mit daten? den nach dem auf msdn komm ich nicht ganz nach:

    msdn.microsoft.com/de-de/library/ms171920(v=vs.80).aspx

    Artentus schrieb:

    dann stehen in testArray diese Einträge: {"test1","test2","test3","test4"}
    Ich hab mich mal in meinen Homeserver eingelogged um es auszuprobieren: Du hast Recht.

    Danke Dir ;)

    @Fire

    Projekt->Neues Element hinzufügen-> Dataset.

    Dann im Designer Table reinziehen: für jede Deiner Properties eine Spalte.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    so habe ich es schon gemacht. nur weitter komme ich nicht.

    ist auch irgentwie etwas verwirrent auf den ersten blick das ganze mit dem DataSet. scheint aber sehr gut und Beliebt zu sein.
    nur find ich den Faden dazu nur schleppend.

    danke

    Edit:
    Meine schwirigkeit ist eher dadrin das dataset richtig zu nutzen. also daten einfügen ausgeben speichern laden aus einer Datei.

    Also ich finde nirgenz eine beschreibung oder ein Snippet wie das ich einen wert in eine Spalte schreiben kann.

    iach habe DataTable1 mit 4 Spalten (Name, Link, User / ID, Passwort)
    Dies habe ich auch schon an das DGV angebunden. aber nun wie schreibe ich etwas in diese Tabelle/Spalten?

    mfg und eine Gute nach an alle und danke

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fire88“ ()

    Mit dem DatasetDesigner hast Du ein typisiertes DS erstellt:
    - kompilieren
    - Dataset11 Component in Deine Form ziehen
    - DataGridview auf deine Form ziehen
    - Datenquelle auswählen
    - an Deine gewünschte Tabelle binden
    Diese kannst Du im Code zum Beispiel mit .Rows.Add füllen.
    so die hat nu geklappt, meine spalten werden im DGV angezeigt. ich kann auch schon daten in das DataTable1 schreiben auch in eine xml schreiben.. aber die daten werden mir NIE im DGV angezeigt. muss ich da was reloaden oder hab ich im algemeinen etwas falsch?

    ausgabe in die .xml =

    XML-Quellcode

    1. <?xml version="1.0" standalone="yes"?>
    2. <NewDataSet>
    3. <Table1>
    4. <Column1>Name1</Column1>
    5. <Column2>Link1</Column2>
    6. <Column3>User1</Column3>
    7. <Column4>Mein Pass</Column4>
    8. </Table1>
    9. </NewDataSet>


    Dataset füllen =

    VB.NET-Quellcode

    1. Main_Frm.DataTable1.Rows.Add(tb_name.Text, tb_link.Text, tb_user.Text, tb_pass.Text)