Probleme mit Datetime im DatagridView mit bestimmten Format

  • C#
  • .NET (FX) 4.5–4.8

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Kaze91.

    Probleme mit Datetime im DatagridView mit bestimmten Format

    Hey zusammen,

    vielleicht könnt ihr mir helfen, auch wenn ich die Hoffnung schon aufgegeben habe.

    Ich lese Daten in eine DataTable und habe diese als Datasource an ein DGV gebunden.
    Damit der Timestamp so angezeigt wird wie auf unserer HP Maschiene muss ich die Spalte wie folgt formatieren (Datentyp der Spalte ist Datetime):


    C#-Quellcode

    1. tabledata_dgv.Columns["TIMESTAMP"].DefaultCellStyle.Format = "yyyy-MM-dd:HH:mm:ss.ffffff";


    Im DGV wird der Timestamp dann richtig dargestellt zum Beispiel:

    2014-12-04:16:24:17.177521

    Wenn ich aber nun den Wert ändere, zum Beispiel aus der letzten 1 eine 2 mache, um diesen dann in die Datasource zu speichern,
    bekomme ich folgende Exception nach Ändern der Zelle:

    die zeichenfolge wurde nicht als gültiges datetime erkannt


    Ich hoffe ihr könnt mir helfen.

    Ps. Und es muss auf diesem Weg gehen.

    Viele Grüße
    Jo, scheints, du musst ihm beim Parsen helfen

    VB.NET-Quellcode

    1. Private Sub ItemDataGridView_CellParsing(sender As Object, e As DataGridViewCellParsingEventArgs) Handles ItemDataGridView.CellParsing
    2. If e.ColumnIndex <> 1 AndAlso e.RowIndex < 0 AndAlso e.RowIndex > ItemDataGridView.RowCount - 2 Then Return
    3. Dim s = e.Value.ToString
    4. e.Value = Date.ParseExact(s, e.InheritedCellStyle.Format, Globalization.CultureInfo.CurrentCulture)
    5. e.ParsingApplied = True
    6. End Sub
    Guck dir auch Date.TryParse an, und .TryParseExact - man könnte ein sehr gutmütiges Parsen coden, was zunächstmal standard parst, und nur bei Fail den Formatstring einbezieht.