DefaultView.RowFilter的条件中如何转换数据类型

飞之子 2016-10-01 10:51:04
RowFilter通常可以采用SQL 中WHERE 的条件,在做筛选时,如果还要运用函数进行数据类型的转换该如何处理,如:
我的表有一个字段是是Varchar类型,字段名为 Result
我希望筛选出值大于3.2的记录(数值比较)
原来是用SQL查询执行:cast(IndexResult as decimal(10,2)) <'3.2' 这个没有问题。
但是我现在想直接在内存中处理,不用每次都去执行SQL语句,用DataView的机制,可是我写为:
DTResult.DefaultView.RowFilter = "cast(IndexResult as decimal(10,2)) <'3.2'";
则系统报错:表达式包含未定义的函数调用 cast()

求助各位,如果处理这个问题。
...全文
308 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
全栈极简 2016-10-02
  • 打赏
  • 举报
回复
你说的函数是sqlserver里面的,本来就跟c#不同。rowfilter本来就是简单的过滤条件。 不要cast,直接IndexResult<3.2 试试。 https://msdn.microsoft.com/zh-cn/library/system.data.dataview.rowfilter(v=vs.110).aspx
飞之子 2016-10-01
  • 打赏
  • 举报
回复
如果很多函数都不支持,这个RowFilter在复杂应用时就意义不大了。还是要靠SQL数据库来处理。内存中的虚拟数据集也没什么意义。
全栈极简 2016-10-01
  • 打赏
  • 举报
回复
RowFilter可能不支持sqlserver中的cast函数,还是在sql中处理查询转换结果。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧