Nächste Reihe aus einer MySql-Tabelle auslesen!

  • VB.NET

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

    Nächste Reihe aus einer MySql-Tabelle auslesen!

    Hallo liebes Forum, ;)

    ich hoffe ihr könnt mir bei meinem Problem weiterhelfen. Ich bin eigentlich ein völliger Neueinsteiger in Sachen VB, vor allem beim Auslesen von Datenbanken in VB.

    Also hier mein Problem:
    Ich möchte gerne Strings aus meiner Tabelle auslesen. Bei meinem Code wird mir jedoch immer nur die erste Reihe (in dem Fall mit ID=1) angezeigt, bzw ich weiß nicht wie ich die 2te, 3te usw. Zeile auslesen kann.

    also hier mal der Code den ich bis jetzt habe:



    VB.NET-Quellcode

    1. Imports System.Data.SqlClient
    2. Imports MySql.Data.MySqlClient
    3. Public Class Form1
    4. Public Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. auswahl()
    6. End Sub
    7. Private Sub auswahl()
    8. Dim conn As MySqlConnection
    9. conn = New MySqlConnection
    10. 'Selbstverständlcih habe ich die Verbindungsdaten geändert ;)'
    11. conn.ConnectionString = "Server=[servername];Database=[name der datenbank];User id=[mein name];Pwd=[mein pw];"
    12. Dim SQLAbfrage As String = "SELECT * FROM tabelle_1"
    13. Dim myCommand As New MySqlCommand
    14. myCommand.Connection = conn
    15. myCommand.CommandText = SQLAbfrage
    16. 'myAdapter.SelectCommand = myCommand
    17. Dim auswahlData As MySqlDataReader
    18. conn.Open()
    19. auswahlData = myCommand.ExecuteReader()
    20. If auswahlData.HasRows Then
    21. auswahlData.Read()
    22. ComboBox1.Items.Add(auswahlData(1))
    23. conn.Close()
    24. Else
    25. 'Nichts
    26. End If
    27. End Sub
    28. End Class



    Und hier die Tabelle aus der ich die daten auslesen will:


    tabelle_1:

    ID|Name|
    ---------
    1 |Bob |
    ---------
    3 |Lea |
    ---------
    4 |Alex |

    Undzwar will ich alle Namen in einer Combobox als Items aufgelistet haben.
    Bis jetzt bekomme ich nur den Namen "Bob".
    Wie kann ich also den Namen der nächsten Reihe auslesen?

    Das ich die ID einfach mit einer for-schleife hochzähle habe ich mir auch schon überlegt. Jedoch kann es auch vorkommen, dass man einen Namen (hier beispielsweise mit der ID=2) gelöscht hat, und somit keine fortlaufende "ID-Kette" hat.

    Kann mir jemand weiterhelfen? Freue mich über jede Antwort :)

    Lg bernd



    Edit by Dodo:
    -> VB-Tags eingefügt

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

    mit Reader.Read wird immer der nächste Datensatz gelesen.
    Wenndedas halt nur einmal ausführst, gibts logisch auch nur einen Datensatz.

    Insgesamt rate ich aber von sonem Datensatz für datensatz - lese Ansatz ab, und empfehle, immer gleich ganze Tabellen zu befüllen. Gugge etwa "Datenbank in 10 Minuten" auf Movie-Tuts, wennde soweit bist.
    Danke für die schnelle Antwort! 8-)

    Ich werd mir das Tutorial heute mal ansehen.

    Also wenn ich dich richtig verstanden habe, dann setz ich um die If-Bedingung eine forschleife.

    VB.NET-Quellcode

    1. dim eintrags_anzahl AS Integer
    2. eintrags_anzahl = SELECT count(name) FROM tabelle_1

    ...gibt mir die anzahl der Zeilen an.

    und dann:

    VB.NET-Quellcode

    1. for i = 1 to eintrags_anzahl
    2. If auswahlData.HasRows Then
    3. auswahlData.Read()
    4. ComboBox1.Items.Add(auswahlData(1))
    5. Else
    6. 'Nichts
    7. End If
    8. next
    9. conn.Close()


    Edit by Dodo:
    -> VB-Tags eingefügt

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