我想按日期来过滤数据视图我进行 '>' 操作我也试过DateTime.Now.ToString("MM/dd/yyyy")
,并且我得到了同样的错误。无法在System.String和System.DateTime的
我在这里做错了什么?
我想按日期来过滤数据视图我进行 '>' 操作我也试过DateTime.Now.ToString("MM/dd/yyyy")
,并且我得到了同样的错误。无法在System.String和System.DateTime的
我在这里做错了什么?
如果您使用字符串值,您需要用'
替换#
。
例如:
dvEvents.RowFilter = "date > '" + DateTime.Now.ToString() + "'";
我也推荐使用'DateTime.Now.ToString(CultureInfo.InvariantCulture,“u”)'来避免用户文化设置的问题。 – Dai 2013-04-23 19:51:20
它看起来像date
被定义为一个字符串。你有两个选择。
您可以确保字符串存储在yyyyMMdd
格式(以便排序和筛选工作正常)和过滤器,如:
dvEvents.RowFilter = "date > '" + DateTime.Now.ToString("yyyyMMdd") + "'";
也可以打开date
成实际DateTime
列,让你当前的代码
我的结论也是如此。 – 2013-04-23 19:58:51
如果日期来自数据库,那么在进行比较之前您必须先进行区域设置转换。
我有一个类似的问题,并没有任何已经建议的决议工作。 解决方法是使用
DataTable dt = GetTableData();
DataView dvEvents = dt.DefaultView;
dvEvents.RowFilter = "date > '" + DateTime.Now.ToString("MM/dd/YYYY") + "'";
希望这可以帮助别人。
我试图复制你的错误,但代码工作正常。我的表有一个名为Date的字段,类型为System.DateTime。这是数据表中唯一的字段。我逐字使用了你的rowfilter。这导致我相信你的日期字段不是真正的日期时间。 – 2013-04-23 19:56:42