Suche Alternative zum Timer für MySQL Abfrage

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Patrick1993.

    Suche Alternative zum Timer für MySQL Abfrage

    Hallo,
    Ich bin grade dabei ein Programm zum Schalten und Steuern zu entwickeln. Mein Client-Programm soll 8 Trackbars enthalten, mit denen ich etwas schalte. Die derzeitge Version ruft alle 9500Millisekunden (Timer) die Position der Trackbars ab, und schreibt diesen in eine MySQL Datenbank. Jetzt wollte ich fragen ob es eine möglichkeit gibt sobald ich den Regler verschiebe, Direkt in die Datenbank zu schreiben, und nicht erst warten zu müssen bis der Timer alle Abfragen abruft.
    Also ich möchte Theoretisch den Timer abschaffen und wenn ein Regler verändert wird den Status (nur des veränderten Reglers) in die DB schreiben. Da wollte ich von euch wissen ob es irgend ein Ereignis gibt das der Regler (Trackbar) aufruft wenn der Regler verändert wird?

    MFG Moritz

    PS: Tut mir leid wenn der Beitrag nicht gleich verständlich ist, in Foren kann ich mich immer sehr Schlecht ausdrücken :S

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

    Hast dus schonmal mit (bin nicht sicher obs geht) mit TCP versucht ?
    TCP ist meiner ansicht nach schneller und besser als Timer aber ob man damit auch in eine Datenbank schreiben kann weiss ich jetzt nicht so ganz

    Patrick1993 schrieb:

    Hast dus schonmal mit (bin nicht sicher obs geht) mit TCP versucht ?
    TCP ist meiner ansicht nach schneller und besser als Timer aber ob man damit auch in eine Datenbank schreiben kann weiss ich jetzt nicht so ganz


    Timer - TCP? Häh?

    Lies dich in Threading ein, bzw in Events. (Hätt' den Post besser lesen sollen). Mit einem Timer den Status abzufragen ist nicht gut. Dafür sind Events da.


    openbook.galileocomputing.de/v…256EintheoretischerExkurs

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

    Ja, es gibt ein Ereignis Trackbar.Scroll.

    Die Entwicklungsumgebung bietet dir übrigens eine Übersicht über alle Events.
    Bei normaler Einstellung oberhalb des CodeEditorFensters.
    Dort ist links eine Dropbox für Objekte, und rechts eine für zugehörige Events
    Das ist meine Signatur und sie wird wunderbar sein!
    Ich hatte schon grade geguckt was TCP mit einem Timer gleich hat ;)

    @ Tsuyo: Zum Thema Multithreading da bekomme ich immer einen fehler "Threadübergreifender Vorgang..." und dann funzt das nicht, trtzdem danke für den Tipp.

    @ Mono: Probiere ich gleich mal aus

    Patrick1993 schrieb:

    Hast dus schonmal mit (bin nicht sicher obs geht) mit TCP versucht ?
    TCP ist meiner ansicht nach schneller und besser als Timer aber ob man damit auch in eine Datenbank schreiben kann weiss ich jetzt nicht so ganz


    Hab meinen Post editiert. Du kannst in einem Thread nicht die GUI ansprechen. Dafür brauchst du einen Invoke. Lies dich erstmal bei Events ein, dass wird reichen.
    Wie baue ich hier einen String ein?

    VB.NET-Quellcode

    1. Dim r1 as String
    2. r1 = TrackBar1.Value
    3. 'Status in die MySQL Datenbank schreiben:
    4. Dim r1 As String
    5. r1 = Trackbar1.Value
    6. Dim conn As MySqlConnection
    7. conn = New MySqlConnection
    8. conn.ConnectionString = "server=server;" & "user id=user;" & "password=moritz;" & "database=moritz"
    9. Try
    10. conn.Open()
    11. Catch myerror As MySqlException
    12. MsgBox("Fehler")
    13. End Try
    14. Dim SQLStatement As String = "UPDATE Tabelle SET status=[u][b]HIERSTRING[/b][/u] WHERE id=1"
    15. schreiben(SQLStatement)


    Bei "HIERSTRING" muss irgendwie die Trackbar Value (r1) rein, allerdings schreibt er mir dann immer HIERSTRING (was da steht) in die Datenbank, und nicht den Stringinhalt...
    Ich hoffe ihr könnt mir helfen. Der Code kommt dann in das Ereigniss Trackbar1.Scroll..

    VB.NET-Quellcode

    1. "UPDATE Tabelle SET status=[u] " & [b]r1[/b] & "[/u] WHERE id=1"