Ausgabe in Array aus Datenbank

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Spike.

    Ausgabe in Array aus Datenbank

    Nabend zusammen,

    leider komme ich derzeit bei einer Sache nicht weiter und hoffe ihr könnt mir hierbei weiterhelfen.

    Ich habe vor aus einer Datenbank alle ID's auszulesen wo ein gewisser Name dabei vorkommt "Test".
    Es erscheint hierbei die ID "1" / "3" / "4" da hier der Name "Test vorkommt.

    Nun, die eigentliche Abfrage mittels DataReader habe ich auch soweit hin bekommen, auch die Ausgabe innerhalb der While Schleife oder For Each.
    Allerdings habe ich derzeit das Problem das ich ich die o.g. ID's nicht in eine Zeichenkette hinbekomme, sprich (1,3,4).

    Hier mein derzeitiger Code:

    VB.NET-Quellcode

    1. Dim Query As String
    2. Query = "Select id FROM verwaltung_ort WHERE ort= 'Test' ORDER BY id"
    3. COMMAND = New MySqlCommand(Query, con)
    4. Dim output As New List(Of String)
    5. READER = COMMAND.ExecuteReader
    6. 'Eintrag zur Array hinzufügen
    7. Do While READER.Read()
    8. output.Add(READER("id").ToString)
    9. Loop


    Ich habe das ganze auch im Debuger bereits ausgeführt und an der Stelle ein Stop eingefügt. Soweit sogut, die einzelnen ID's werden im READER("id") wiedergegeben.
    Allerdings werden diese scheinbar nicht in die List geschrieben, bzw. hinzugefügt.
    Ich habe das ganze versucht via. MessageBox.Show(output) auszugeben, natürlich mit Fehler.
    Ebenfalls habe ich dann selbiges versucht mit Convert.ToString, ebenfalls ohne Erfolg.

    Leider komme ich hierbei nicht mehr weiter, mit dem "Komma" einfügen, würde ich wahrscheinlich noch hin bekommen.

    Ich danke bereits jetzt für die Tipps oder Lösungsvorschläge.

    P.S. ich habe eben noch einmal herumprobiert, leider aber auch nur die Lösung das ich das Array in mehreren Messages ausgegeben bekomme, leider nicht in einem String:

    VB.NET-Quellcode

    1. For Each i As Integer In output
    2. MessageBox.Show(i.ToString)
    3. Next


    Ich habe hierbei oben das "Dim output ... of String" in "Dim output As New List(Of Integer)" getauscht.
    Da es natürlich in einer For Each steht, bekomme ich jeweils die Message "1" dann "3" und "4".. :|

    Gruß

    Spike

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

    Kleine Optimierung:

    VB.NET-Quellcode

    1. MessageBox.Show(String.Join(", ", output.Select(Function(x) x.ToString)))

    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    HeyHo,

    Danke EaranMaleasi, das ist eine gute Frage, ich habe gestern Abend dann doch noch eine Lösung gefunden, allerdings nicht in der kürze wie deine, somit danke ich dir sehr dafür. Wieder etwas dazugelernt :thumbup:

    EaranMaleasi schrieb:

    Nun, wenn du einen String und keine Liste haben möchtest, warum benutzt du dann nicht auch einen String?


    Danke VaporiZed, auch hier etwas neues in der Funktionsweise, allerdings war meine Ausgabe in der Messagebox nur temporär damit ich sehe ob ein Inhalt ausgegeben wird, trotzdem Danke!

    VaporiZed schrieb:

    Kleine Optimierung:

    VB.NET-Quellcode

    1. MessageBox.Show(String.Join(", ", output.Select(Function(x) x.ToString)))


    Top, ich finde es wirklich super, dass man hier solch gute Hilfe bekommt, wenn man einmal nicht mehr weiter weis.

    Sonnige Grüße

    Spike