Hallo
Ich habe ein Datagridview mit mehreren Datumsspalten. Dieses Datagridview ist an eine Bindingsource gebunden.
Über Textboxen und einen speichern Button können die Werte im DataSet geändert werden.
Nun möchte ich alle Datumsangaben mit zweistelliger Jahreszahl speichern. Dazu habe ich die entsprechenden Spalten über den Smart Tag --> DefaultCellStyle als Datum, mit dem Format "dd.MM.yy" formatiert -das klappt auch alles.
Edit: Die Spalten im DataSet selber sind als System.DateTime formatiert (falls das eine Rolle spielt)
Allerdings wird hier nun immer ein Wert angezeigt, auch wenn der gespeicherte Datumswert eigentlich nothing ist.
Ich kann also nicht gescheid aus meinem DataSet löschen.
Hier ein Beispiel eines Datums:
Folgendes setzt jetzt immer ein falsches (oder leeres) Datum voraus - sagen wir die Textbox fürs orderdate bleibt leer, dann will ich dieses löschen.
Nehme ich die Formatierung aus der "orderdate" Spalte raus, wird mir korrekterweise kein Wert angezeigt. Der entsprechende Wert im DataSet sollte ja nothing sein.
Mit oben eingestellter Formatierung (Datum und "dd.MM.yy") wird mir aber der 01.01.0001 angezeigt.
Wie bekomme ich dieses Problem mit zweistelligen Jahreszahlen gelöst?
Ich habe ein Datagridview mit mehreren Datumsspalten. Dieses Datagridview ist an eine Bindingsource gebunden.
Über Textboxen und einen speichern Button können die Werte im DataSet geändert werden.
Nun möchte ich alle Datumsangaben mit zweistelliger Jahreszahl speichern. Dazu habe ich die entsprechenden Spalten über den Smart Tag --> DefaultCellStyle als Datum, mit dem Format "dd.MM.yy" formatiert -das klappt auch alles.
Edit: Die Spalten im DataSet selber sind als System.DateTime formatiert (falls das eine Rolle spielt)
Allerdings wird hier nun immer ein Wert angezeigt, auch wenn der gespeicherte Datumswert eigentlich nothing ist.
Ich kann also nicht gescheid aus meinem DataSet löschen.
Hier ein Beispiel eines Datums:
VB.NET-Quellcode
- Private Sub SaveOrder()
- If OrderBindingSource.Current Is Nothing Then
- MessageBox.Show("Bitte erst eine Bestellung auslösen.")
- Exit Sub
- End If
- Dim SelectedOrder = DirectCast(DirectCast(OrderBindingSource.Current, DataRowView).Row, DtsSettings.OrderRow)
- 'Datumswerte prüfen und in Variablen speichern
- Dim orderdate As Date
- If Not Datecheck(orderdate) Then
- MessageBox.Show("ungültiges Bestelldatum")
- Exit Sub
- End If
- 'usw. für die anderen Datumswerte
- MessageBox.Show(orderdate.ToString)
- 'SelectedOrder.orderdate = orderdate
- End Sub
- Private Function Datecheck(ByRef DatefromTB As Date) As Boolean
- If TBOrderDate.Text = "" Then
- DatefromTB = Nothing
- Return True
- Else
- If Not Date.TryParse(TBOrderDate.Text, DatefromTB) Then
- DatefromTB = Nothing
- Return False
- End If
- End If
- Return True
- End Function
Folgendes setzt jetzt immer ein falsches (oder leeres) Datum voraus - sagen wir die Textbox fürs orderdate bleibt leer, dann will ich dieses löschen.
Nehme ich die Formatierung aus der "orderdate" Spalte raus, wird mir korrekterweise kein Wert angezeigt. Der entsprechende Wert im DataSet sollte ja nothing sein.
Mit oben eingestellter Formatierung (Datum und "dd.MM.yy") wird mir aber der 01.01.0001 angezeigt.
Wie bekomme ich dieses Problem mit zweistelligen Jahreszahlen gelöst?
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „DerSmurf“ ()