verwendetes Datenbanksystem: MySQL
Hallo, ich bin rel. neu, sowohl Hier als auch mit C# und SQL.
Ich möchte mit meiner Anwendung ein MySQL Datum abfragen und einen Zeitraum filtern.
Dazu lade ich diese DB in eine Datatable und stelle die Daten in einem Datagrid dar.
Das berechnen und Filtern des Datums erfolgt (soll erfolgen) über ToggleButton (Filterung an/aus).
Nun habe Probleme die im Datagrid gespeicherten Datumsangaben mit einem 2. Wert zu verrechnen.
(also Heute+7Tage - Datum) es gibt entweder Probleme mit DateTime und String oder Formatprobleme wenn beide Datumswerte DateTime sind.
und eine Frage habe ich dazu: Wie ist bei ständig wechselnden Formatumwandlungen die allgemeine Vorgehensweise?
Das Datum wird ja vom Eingabefeld in MySQL zurück in die Datatable usw. mehrmals hin und her konvertiert (de_DE zu en_US/GB...)
(ja, Google gibt zwar auch was her aber nicht was ich brauche, oder denke zu brauchen)
C#-Code: |
DateTime Heute = DateTime.Now;
DateTime HeutePlus7 = Heute.AddDays(7);
string HeutePlus7String = HeutePlus7.ToString("yyyy-MM-dd h:mm tt");
string FilterstringDate = "Datum_bis < #" + HeutePlus7 + "#";
string FilterstringStr = "Datum_bis < '" + HeutePlus7String + "'";
if (btn_sortbyskonto.ForeColor == Color.FromArgb(255, 80, 80, 80))
{
btn_sortbyskonto.ForeColor = Color.FromArgb(255, 0, 107, 160);
btn_sortbydate.ForeColor = Color.FromArgb(255, 80, 80, 80);
MessageBox.Show(HeutePlus7 + "\n" + FilterstringStr);
((DataTable)dgw.DataSource).DefaultView.RowFilter = FilterstringStr;
}
else if (btn_sortbyskonto.ForeColor == Color.FromArgb(0, 107, 160))
{
btn_sortbyskonto.ForeColor = Color.FromArgb(255, 80, 80, 80);
((DataTable)dgw.DataSource).DefaultView.RowFilter = "";
}
|
Exception:
entweder: Die Operation '<' kann nicht an MySql.Data.Types.MySqlDateTime und System.String durchgeführt werden
oder: Die Zeichenfolge wurde nicht als gültiges DateTime erkannt