Filtrering af data med DataView.RowFilter

RowFilter property’en benytter DataColumn.Expression syntaks, som er fint beskrevet i MSDN. Det er dog ikke beskrevet, hvordan datoer håndteres.

I MSDN står der at man skal bruge #[dato]# for at skrive dato og ‘[dato]’ for string værdier. Du kan godt bruge begge dele til dato værdi, men du skal være opmærksom på følgende:

  1. Hvis du bruger #[dato]#, fx. String.Format("begindate < #{0}#", DateTime.Now), så fungerer det kun, hvis din CurrentCulture’s datoformat er det samme som i CultureInfo.InvariantCulture. Benyt følgende for at sikre at det altid virker: String.Format("begindate < #{0}#", DateTime.Now.ToString(CultureInfo.InvariantCulture). Det ser ud til at dette er en ny ‘feature’ i .NET 2.0.
  2. Hvis du bruger ‘[dato]’, fx. String.Format("begindate < ‘{0}’, DateTime.Now), så er der ingen problemer. Dato bliver konverterer ifht. CurrentCulture’s format og parsed fra DataView vha. af CurrentCulture’s datoformat.

Leave a Reply

Your email address will not be published. Required fields are marked *