Probleme mit mysql :(

  • VB.NET

Es gibt 23 Antworten in diesem Thema. Der letzte Beitrag () ist von Kagurame.

    Probleme mit mysql :(

    Moin,

    ich habe eine mysql datenbank (spalten: id, nummer, n_p, pr) so und jetzt möchte ich anhand der nummer den rest wissen
    also so kann ich ja wenn ich die nummer habe die id auslesen (SELECT id FROM kasse WHERE nummer = ... glaub ich )

    Ich möchte das ganz über den mysql-connector machen(ich weiss dass das unsicher ist und dass man auch php nehen kann ^^)

    So wie kann man jetzt mir der id den rest in einzelne variablen auslesen ???? Also nur die restlichen werte
    ein beispiel wäre toll ;)



    MfG Marcel ;)

    SQL-Abfrage

    1. SELECT * FROM kasse WHERE id= 1

    Damit ziehst du alles aus der DB (Kasse) was die id 1 hat

    VB.NET-Quellcode

    1. Dim id As New List(Of String) ' Id deklarieren

    SQL-Abfrage

    1. "SELECT * FROM kasse WHERE id = " & id(Listbox1.SelectedIndex)

    Wenn du in einer Listbox einen Index angeklick hast bekomsmt du damit die Daten von dem Namen

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

    okay thx schonmal

    1.also ich finde id von der eingegebenen nummer damit heraus : SELECT id FROM kasse WHERE nummer
    2.dann suche ich mit der id nach den anerern SELECT * FROM kasse WHERE id= 1
    lese ich denn nicht dann auch wieder nummer aus ?? und dann müsste ich ja den string auch noch splitten oder kann ich jedes einzeln auslesen ??


    MfG Marcel
    Wenn du die Daten einzeln auslesen willst (siehe Beispiel 2 in meinem Post)

    *EDIT*
    Hier bekommst du auch einiges an Hilfsstoff

    Da bekommst du auch gezeigt wie du eine ID auslesen kannst

    Split = Neue Zeile

    VB.NET-Quellcode

    1. Dim hallo As String = 'Dein MySQL Code'

    hmm ok

    ich benutze jetzt die Openmysqllib :)
    jetzt kommt mit bei der ersten abfrage ein fehler

    VB.NET-Quellcode

    1. myResult = db.Query("SELECT * FROM kasse WHERE eacode = ‘1335’;")


    hat jemand ne ahnung ob der code überhaupt richtg ist, der gibs doch die id aus ?

    MfG

    VB.NET-Quellcode

    1. "SELECT * FROM kasse WHERE eacode = 1335"


    Machs so

    VB.NET-Quellcode

    1. SELECT * FROM kasse WHERE id = 1

    Damit zihest du die ganzen daten von dem Eintrag mit der id 1

    (id kannst du so nennen wie du lustig bist und die 1 kannst du auch ändern)

    also wenn ich diesen code s.o. nehme dann wird in mein ausgabefeld das ausgegeben ColumHeader[]-Array

    was heisst das ??
    *edit code ;)

    VB.NET-Quellcode

    1. Private db As New MySqlLib.MySql("http://syskasse.kilu.de/query.php")
    2. Private myResult As MySqlLib.MySql.MySqlResultList
    3. Public Sub mysql_datanlesen()
    4. myResult = db.Query("SELECT mwst FROM kasse WHERE id = 1")
    5. ListBox1.Items.Add(myResult.ToColumnHeader)
    6. End Sub


    MfG

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

    Erklär doch nochmal genau was du machen willst...

    Sprich: Welche Informationen willst du haben?
    Welche Daten liegen in der Tabelle der Datenbank?

    Wenn du ein "SELECT * FROM Tabellenname WHERE Id = 1" abfragst...
    Selektierst du (SELECT) alles (*) von der Tabelle Tabellenname, wo (WHERE) die Id 1 beträgt...
    Nun kommts drauf an was du damit machst... das ist ja erstmal der SQL Befehl...

    Damit weiß aber hier noch keiner wohin du den in deinen Programm übergibst... Bsp. hast die Daten in nem Recordset?! Dataset?!

    Wo ich deinen Code sehe... Du schreibst damit doch nur die Spaltennamen deiner Tabelle ?! Oder nicht? ColumnHeader heißt für mich soviel wie Spaltenname ^^ Also keine Daten...
    Du versuchst gerade den Beispielcode von einem ListVIEW auf eine Listbox zu übertragen... das klappt aber so nicht ganz ;)
    also ich möchte anhant einer nummer (feld: nummer, z.B. 1223 oder so ), steht in der datenbank.
    Möchte die openmysql lib verwenden
    so jetzt möchte ich die restlichen 2 daten (n_preis und mwst, aus der datenbak holen und in ne textbox ausgeben.
    Früher hatte ich das genze in ne txt geschriben da aber jetzt 4 leute das prog benutzen ist halt ne datenbank besser
    d.h.
    nummer eingeben -> in der datenbank danach suchen -> soll die beiden restlichen werte ausgeben in 2 variablen,....

    es sind momentan 8 datensätze vorhanden. ;)

    geht das in einem schritt mit dem auslesen ??



    Hoffe hilft weiter

    MfG Marcel
    Also ohne das Ding selber gerade auf zu haben...

    Ich denke von der Logik müsstest du
    myResult.ToItemCollection() verwenden... dabei scheint es sich um ein Array zu handeln...
    Also wirst du einfach mal nen Debugger anmachen müssen und schauen was für Werte da drin stehen....
    Ich DENKE!!! Wenn du

    VB.NET-Quellcode

    1. Private db As New MySqlLib.MySql("http://syskasse.kilu.de/query.php")
    2. Private myResult As MySqlLib.MySql.MySqlResultList
    3. Public Sub mysql_datanlesen()
    4. Dim testarray() As String
    5. myResult = db.Query("SELECT * FROM kasse WHERE id = 1")
    6. testarray = myResult.ToItemCollection()
    7. TextBox1.Text = testarray (0)
    8. TextBox2.Text = testarray (1)
    9. End Sub


    verwendest könnte es was werden... Aber wirklich helfen tut da immer der Debugmodus... also F9 auf

    VB.NET-Quellcode

    1. myResult = db.Query("SELECT * FROM kasse WHERE id = 1")
    und myResult in die Überwachung... Und schon weißt du genau WAS da drin steht und damit auch was du damit anfangen kannst ;)

    // TextBox1.Text korrigiert XD
    ergibt hier nen fehler

    testarray = myResult.ToItemCollection()

    Fehler 1 Ein Wert des Typs "1-dimensionales Array von System.Windows.Forms.ListViewItem" kann nicht in "1-dimensionales Array von String" konvertiert werden, da "System.Windows.Forms.ListViewItem" nicht von "String" abgeleitet ist. G:\Kasse01\Kasse\Form1.vb 26 21 Kasse
    Haste denn auch mal im Debug Modus geguckt was da drin steht in dem ominösen myResult?!
    Denn solang ich das net weiß, vermute ich auch nur^^

    Möchte jetzt nicht unbedingt die Lib saugen und mir die Daten auf die Homepage donnern um das nachvollziehen zu können. Aber wenn was top ist... dann der Debugger von Visual Studio

    //Edit
    Versuch mal:

    VB.NET-Quellcode

    1. TextBox1.Text = myResult.Items(0)("n_preis")
    2. TextBox2.Text = myResult.Items(0)("mwst")

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

    hmm
    ok ich hab mal test array gegen ne listview ausgestauscht dann ist der fehler weg aber steht nichts drin.
    bei der anderen variante s.u. kommt direkt mal der fehler Der Index lag außerhalb des Bereichs. Er muss nicht negativ und kleiner als die Auflistung sein.
    Parametername: index!
    Sieht so aus als ob was in der tabelle schief läuft
    falls jemand mal die projektdateien haben möchte :
    Spoiler anzeigen
    http://syskasse.kilu.de/Kasse01.rar


    *EDIT hab mal amme tabel inhalte gelöscht : also id ist int auto_increment, mwst ist int, n_preis ist double,produkt ist varchar
    *EDIT danke an alle geht jetzt super *_*
    MfG

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