| 

.NET C# Java Javascript Exception

3
Hallo,

ich versuche gerade ein DataTable nach einem Datum zu filtern und wundere mich über das Ergebnis.

In meinem DataTable gibt es eine Datumsspalte "Zuletzt bearbeitet am", nach der gefiltert werden kann. Ich will z.B. alle Datensätze die größer sind als der 01.09.2011 anzeigen.

Der Rowfilter wird durch den Benutzer über die GUI erstellt, also zur Laufzeit zusammengebaut, und sieht dann z.B. so aus:

isnull([Zuletzt bearbeitet am], '')> #01.09.2011 00:00:00#


//Filter setzen
content.DefaultView.RowFilter = Filter;



Das Problem scheint zu sein, dass der Rowfilter das Filter-Datum falsch/anders interpretiert.
Es sieht so aus als ob er hier alles Filtert, was größer als der 9. Januar ist.
Er scheint also mm.dd.yyyy zu erwarten.

Auch das setzen der Locale Eigenschaft des DataTables auf CultureInfo.CurrentCulture hatte keine Auswirkungen.

Ich könnte ja nun Code schreiben, der das Eingabedatum so herumdreht, bin mir aber nicht sicher ob das auf jedem Computer funktioniert und außerdem würde ich gerne verstehen was hier vor sich geht.

Hat jemand eine Idee, oder stehe ich vielleicht auf dem Schlauch?
tia, bg
News:
08.09.2011
bennygr 53 5
1 Antwort
4
Date values are enclosed within sharp characters # #. The date format is the same as is the result of DateTime.ToString() method for invariant or English culture.
[C#]

dataView.RowFilter = "Date = #12/31/2008#" // date value (time is 00:00:00)
dataView.RowFilter = "Date = #2008-12-31#" // also this format is supported
dataView.RowFilter = "Date = #12/31/2008 16:44:58#" // date and time value

dataView.RowFilter = String.Format(CultureInfo.InvariantCulture.DateTimeFormat,
"Date = #{0}#", new DateTime(2008, 12, 31, 16, 44, 58));

aus: DataView RowFilter Syntax [C#]
08.09.2011
Jürgen Luhr 7,1k 1 9
Danke,das hat geholfen! :)
bennygr 08.09.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH