VB.net liest Timestamp(3) Feld in MySQL-Datenbank ohne Millisekunden aus

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

    VB.net liest Timestamp(3) Feld in MySQL-Datenbank ohne Millisekunden aus

    Hallo Forum,

    ich schreibe ein Frontend für eine MySQL Datenbank in VB.net.

    In der Datenbank existieren in jeder Tabelle Timestamp(3) Felder (also mit Millisekunden), die automatisch von der Datenbank bei Feld-Update gesetzt werden.
    Ich möchte diese Werte nutzen, um im Frontend zu prüfen, ob während der Bearbeitung des Datensatzes zwischenzeitlich Änderungen an diesem durch andere Nutze erfolgt sind.

    Dazu binde ich beim Einlesen des Datensatzes in ein Dataset die Text-Eigenschaft eines labels an das Timestamp Feld:

    VB.NET-Quellcode

    1. Case lbllstUpdate.Name
    2. If c.DataBindings.Count = 0 Then
    3. c.DataBindings.Add("text", bs, "projekte.lstUpdate")
    4. Else
    5. c.DataBindings.Clear()
    6. c.DataBindings.Add("text", bs, "projekte.lstUpdate")
    7. End If



    Bevor ein Update über den dataAdapter gemacht wird, rufe ich den timestamp(3)-Wert des Datensatzes mit executeScalar ab:

    VB.NET-Quellcode

    1. Dim cmd As New MySqlCommand("select lstupdate from projekte where ProjID = " & strProjID, conn)
    2. conn.Open()
    3. Dim lstUpdate As String = cmd.ExecuteScalar().ToString
    4. conn.Close()


    Das Problem ist nun, dass sowohl im lbllstUpdate als auch in der Variable lstUpdate zwar der korrekte Wert aus dem Timestamp Feld steht mit Datum und Uhrzeit, allerdings OHNE Millisekunden. Somit sind jegleiche Vergleiche der Werte lediglich sekundengenau.
    Wie erreiche ich ein korrektes Auslesen mit Millisekunden?

    Vielen Dank vorab :)