DefaultView.RowFilter使用不同的DateTime格式引发Format Exception



我必须有一个区域性,其日期格式如下dd.mm.yyyy,但当我将其转发到行筛选器时,如下所示:

myTable.DefaultView.RowFilter="opened_on=#"+datetimepicker1.value.ToShortDateString()+"#"


它表示输入字符串不是有效的DateTime格式
当用户具有dd/mm/yyyy格式的区域性而没有。它工作得很好
有人知道为什么吗?

如果要在DateTime列上使用DefaultView.RowFilter属性筛选DataTable的行,则应始终使用不变区域性的通用格式。(MM/dd/yyyy(,如MSDN中对DataColumn类的Expression属性所解释的

所有文字表达式都必须在不变区域性中表达场所当DataSet解析和转换文字表达式时始终使用不变的区域性,而不是当前的区域性。

这可以很容易地通过类似的东西进行验证

DateTime t = new DateTime(2018,12,9);
// will find rows with date = September, 12 2018 
// or will fail if your date is 13/12/2018
// string fmt = t.ToShortDateString();

string fmt = t.ToString("MM.dd.yyyy");
dt.DefaultView.RowFilter = "ADateColumn = #" + fmt + "#";

相关内容

  • 没有找到相关文章

最新更新