Compute is not a cultured method
Even though, in the constructor for my WinForms app I do this...
Thread.CurrentThread.CurrentCulture = New CultureInfo("en-AU")
I'm finding that the MIN, MAX functions for DataTable querying seem to use en-US under-the-covers...
' cannot use ADO.NET syntax mdtmMinDate = Convert.ToDateTime(mobjTimeSheetGrid.Compute("MIN(TimesheetDate)", "")) mdtmMaxDate = Convert.ToDateTime(mobjTimeSheetGrid.Compute("MAX(TimesheetDate)", ""))
So, I had to roll my own :(
' cannot use ADO.NET syntax mdtmMinDate = Convert.ToDateTime(mobjTimeSheetGrid.Compute("MIN(TimesheetDate)", "")) mdtmMaxDate = Convert.ToDateTime(mobjTimeSheetGrid.Compute("MAX(TimesheetDate)", "")) For Each row As TimeSheet.TimeSheetRow In vobjTimesheetGrid.Rows Dim tmpDate As String = row.TimesheetDate If CDate(tmpDate).CompareTo(mdtmMinDate) = -1 Then mdtmMinDate = CDate(tmpDate) End If If CDate(tmpDate).CompareTo(mdtmMaxDate) = 1 Then mdtmMaxDate = CDate(tmpDate) End If Next
Further information about Compute method:
DataTable.Compute - the filter parameterCompute - MS docs