[MYSQL] Hilfe gesucht

  • VB.NET

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

    [MYSQL] Hilfe gesucht

    Servus,

    Kann mir wer helfen ? krüble schon wiedermal ewig herum...



    ich will nach den Statis, die in der Listbox eingetragen sind suchen und diese dann in die jeweiligen spalten eintragen

    2 der 3 statis die ihr seht sind definiert in der mysql datenbank stehts so da:

    ID Status Statusbeschreibung

    1 15 XXXXXXX
    2 26 YYYYYYYYYYYY

    ich hiffe ihr könnt mir helfen.

    mfg
    Erstmal der plural von Status ist auch Status (od. Statusse was sich aber blöde anhört). Ich musste ehrlich grübeln was du meinen könntest.

    Wie lässt du denn den Status in der Listbox ausgeben?? Wenn das durch ein SQL Query passiert, dann lade beim durchlauf des Status auch gleich deren Beschreibung mit.
    Stichwort LEFT JOIN-Klausel.

    PS: Eine Datenbankverbindung muss nur EINMAL geöffnet werden. Nicht bei jeder Abfrage, das unnötiger Traffic und verlangsamt die ganze Sache.
    Hallo !

    du hast recht was die Statusse(^^) angeht

    ich lade die statis aus einer anderen datebank die sieht ca. so aus

    ID Sendungsnummer Gewicht Status

    1 56456564 500 15
    2 46977110 51 26

    so kommt das in eine andres listview. beim doppelklick auf ein item wird dann diese form angezeigt und der stati komm so da rein:

    VB.NET-Quellcode

    1. Dim sqlquery As String = "SELECT * FROM Sendungen WHERE Sendungsnummer = '" & Form2.ListView1.SelectedItems.Item(0).Text & "' AND (Statusmerker LIKE '" & StatusMerker & "')"
    2. Dim reader As MySqlDataReader
    3. cmd.Connection = SQLConnection
    4. SQLConnection.ConnectionString = ServerString
    5. SQLConnection.Open()
    6. cmd.CommandText = sqlquery
    7. reader = cmd.ExecuteReader
    8. Do While reader.Read
    9. With ListView1
    10. .Items.Add(reader("Status"))
    11. End With
    12. Loop
    13. SQLConnection.Close()
    14. Catch ex As Exception
    15. MsgBox(ex.ToString)
    16. End Try


    dann will ich wiederrum den status 26 bzw. 15 nehmen und wieder abchecken - geht, aber nur mit dem einfügen komm ich ned klar

    mfg
    ja nutze LEFT JOIN. Das ist eine n:m Verknüpfung.

    SQL-Abfrage

    1. SELECT a.Sendungsnummer, a.Gewicht, s.Statusbeschreibung FROM `auftrag` AS `a` LEFT JOIN `status` AS `s` ON s.status = a.status


    Hier wird die Auftragstabelle genommen und durchlaufen. Bei jedem Datensatz wird ebenfalls die Status Tabelle nach der ID durchsucht die beim Auftrag in der Statusspalte angegeben ist.
    danke für deine antwort, aber ich will meine code auch verstehen - und das ist definitiv zu fortgeschritten für mich oO

    aber warum geht das ned??

    VB.NET-Quellcode

    1. Do While StatusReader.Read
    2. ListView1.Items(i).SubItems(0).Text = StatusReader("Statusbeschreibung")
    3. Loop


    4 zeilen sind mit statis belegn (15,14,29,29) und der erste und dritte werden mit der Statusbeschreibung überschrieben....

    1. warum nicht alle
    2. warum nicht in die subitems tabelle ?

    mfg
    Dodo hat nun mal recht mit dem LEFT JOIN.
    Ein INNER JOIN (das ist das, was du mit WHERE implizierst) nimmt nur die Datensätze, die in beiden Tabgellen matchen.

    Offtopic:
    Die Mehrzahl von Status ist weder Statusse noch Stati noch Statis, sondern Status (gesprochen mit langem U)
    de.wikipedia.org/wiki/Status
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    hallo !

    nochmal eine frage zu der sache...

    ich würd es wirklich gerne so machen, wie ich es noch verstehe, hoffe seid mir nicht böse aber nun zur frage:

    VB.NET-Quellcode

    1. While leser.Read
    2. With ListView1
    3. .Items.Add(leser("Statuswert"))
    4. With .Items(.Items.Count - 1).SubItems
    5. .Add(leser("Statusbeschreibung"))
    6. End With
    7. End With
    8. End While


    ich hab 4 listview einträge und das programm nimmt nur 2 her obwohl die daten stimmen.... was aknn das sein ?