Chart X axis nur Datum aus db anzeigen lassen

  • VB.NET
  • .NET 5–6

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

    Chart X axis nur Datum aus db anzeigen lassen

    Guten Morgen liebes Forum

    Ich kämpfe mit folgendem Problem. Ich lasse mir in einem Chart ein ganzes jahr an Messungen anzeigen. Funktioniert wunderbar.
    Leider wird mir in der X axis anstatt nur dem Datum auch noch eine Uhrzeit angezeit. Beispiel: 10.01.2023 00:00:00
    Ich brauche nur das Datum ohne Uhrzeit da es sehr viel Platz verbraucht.

    Die Abfrage mache ich so:

    VB.NET-Quellcode

    1. Imports MySql.Data.MySqlClient
    2. Public Class Grafik_Tank1
    3. Private Sub Grafik_Tank1_Load(sender As Object, e As EventArgs) Handles Me.Load
    4. ChartLeitwert.Series(0).Points.Clear()
    5. ChartpHWert.Series(0).Points.Clear()
    6. ChartpHWert.Series(1).Points.Clear()
    7. ChartpHWert.Series(2).Points.Clear()
    8. ChartTemperatur.Series(0).Points.Clear()
    9. ChartTemperatur.Series(1).Points.Clear()
    10. ChartTemperatur.Series(2).Points.Clear()
    11. 'ergebnis der comboxbox auswahl definieren und gleich den ausgewählten wert eintragen
    12. Dim resultComboboxJahr As String = FrmFeuchtraumListe.ComboboxJahrAuswahl.SelectedItem.ToString
    13. Dim READER As MySqlDataReader = Nothing
    14. Try
    15. ConnectDatabase()
    16. If IsNumeric(resultComboboxJahr) Then
    17. 'variable für mysql befehl erstellen und eine leere zeichenkette zuweisen
    18. Dim myQueryJahre As String = MySqlSelectGrafikTank1Jahr(resultComboboxJahr)
    19. Dim cmd = New MySqlCommand(myQueryJahre, con)
    20. READER = cmd.ExecuteReader
    21. While READER.Read
    22. ChartLeitwert.Series("Leitwert").Points.AddXY(READER.GetString("datum"), READER.GetDecimal("leitwert"))
    23. ChartpHWert.Series("pH").Points.AddXY(READER.GetString("datum"), READER.GetDecimal("phwert"))
    24. ChartpHWert.Series("max.").Points.AddXY("datum", druckereimanagerSettings.max_phwert.Replace(",", "."))
    25. ChartpHWert.Series("min.").Points.AddXY("datum", druckereimanagerSettings.min_phwert.Replace(",", "."))
    26. ChartTemperatur.Series("Temp.").Points.AddXY(READER.GetString("datum"), READER.GetDecimal("temperatur"))
    27. ChartTemperatur.Series("max.").Points.AddXY("datum", druckereimanagerSettings.max_temp.Replace(",", "."))
    28. ChartTemperatur.Series("min.").Points.AddXY("datum", druckereimanagerSettings.min_temp.Replace(",", "."))
    29. End While
    30. End If
    31. Catch myerror As MySqlException
    32. 'Fehler abfangen
    33. 'Fehlermeldung und Fehlercode anzeigen
    34. MessageBox.Show(TM_ERROR_MESSAGE_MYSQL_TABLE_TANK1_HAS_NO_DATA & vbCrLf & myerror.Message & TM_ERROR_CODE & vbCrLf & myerror.Number, TM_ERROR_TYPE_MYSQL, MessageBoxButtons.OK, MessageBoxIcon.Error)
    35. Finally
    36. If READER IsNot Nothing Then
    37. READER.Close()
    38. End If
    39. End Try
    40. End Sub
    41. End Class


    und der QUERY (MySqlSelectGrafikTank1Jahr) sieht so aus:

    VB.NET-Quellcode

    1. Module dbSelectGrafikTank1Jahr
    2. 'Abfrage Grafik Tank1 Jahr
    3. Public Function MySqlSelectGrafikTank1Jahr(selectedJahr As String) As String
    4. 'variable definieren und predefined statement einfügen
    5. Dim select_statement As String = "SELECT * FROM `DWP`.`feuchtmittelmessung` WHERE tank = 'T1' AND DATE_FORMAT(`DWP`.`feuchtmittelmessung`.`datum`, '%Y') = '" & selectedJahr & "';"
    6. 'Statement zurückgeben
    7. Return select_statement
    8. End Function
    9. End Module


    In der db ist ist das Feld "datum" als Typ "date" hinterlegt.

    Warum bekomme ich jetzt aber trotzdem eine Uhrzeit mit?



    Danke und Grüße

    Gebhard

    Typhoon schrieb:

    In der db ist ist das Feld "datum" als Typ "date" hinterlegt.
    Date beinhaltet (zumindest in VB.NET) immer auch eine Zeitkomponente. Aber:

    Typhoon schrieb:

    READER.GetString("datum")
    Du liest den Wert als String aus. Absicht? Wenn ja, bearbeite vor Hinzufügen den Textwert. Wenn nicht, importiere den Wert als Date, nicht als String
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.