C#断开式数据库连接的DataView数据筛选的问题

Lotts 2013-03-21 12:19:51
dv.RowFilter = string.Format("DATENAME(MONTH,日期)='{0}'", 1); //筛选语句
按道理表达式的值会是我时间的月份和1比较,但是出现异常了我不知道为什么
异常信息是 【表达式包含未定义的函数调用 DATENAME()】
菜鸟求解
...全文
253 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wanghui0380 2013-03-21
  • 打赏
  • 举报
回复
DataColumn.Expression 并不完全等同sql,他有自己的规定 这些具体规定可以去看msdn http://msdn.microsoft.com/zh-cn/library/system.data.datacolumn.expression%28v=vs.80%29.aspx
三五月儿 2013-03-21
  • 打赏
  • 举报
回复
RowFilter不是dataview的筛选吗,怎么能对数据库进行操作
宝_爸 2013-03-21
  • 打赏
  • 举报
回复
RowFilter 不支持DATENAME这个函数 这里有比较年的代码,你可以参考它修改下: bigDT.DefaultView.RowFilter = "CONVERT(SUBSTRING(CONVERT(date_posted, 'System.String'), 5, 4), 'System.Int32')=2012"; 代码来自: http://stackoverflow.com/questions/9201816/add-rowfilter-condition-for-datetime-year-only-check
狼烟辉 2013-03-21
  • 打赏
  • 举报
回复
两个概念. 数据库查找,可以使用数据库相关函数. 而dataview 中的筛选,有自己相应的函数继规则,筛选条件一般直接使列名称=??这样的格式
gxingmin 2013-03-21
  • 打赏
  • 举报
回复
RowFilter 不支持 数据库里某些函数,你只能用其他方式来解决 如,你在查询的时候,就把月份作为附加的一列选出来(把此列在界面隐藏),然后用这列来过滤
gxingmin 2013-03-21
  • 打赏
  • 举报
回复
dv.RowFilter = string.Format("MONTH(日期)='{0}'", 1); 这样行吗
_小黑_ 2013-03-21
  • 打赏
  • 举报
回复
楼主我个人觉得 dataview 是对datatable内的数据进行筛选,而不是数据库
_小黑_ 2013-03-21
  • 打赏
  • 举报
回复
引用 8 楼 Lotts 的回复:
引用 1 楼 l397870376 的回复: 楼主我个人觉得 dataview 是对datatable内的数据进行筛选,而不是数据库但是我觉得执行语句和数据库有差别吗?
datename() 是数据库里的函数 dataview里 有这个函数吗
Lotts 2013-03-21
  • 打赏
  • 举报
回复
引用 1 楼 l397870376 的回复:
楼主我个人觉得 dataview 是对datatable内的数据进行筛选,而不是数据库
但是我觉得执行语句和数据库有差别吗?

110,580

社区成员

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

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

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