问题描述
问题简述:做一个datagridview的查询界面,所要查询的字段和查询值有用户选择、输入。在查询字段为字符型时没有问题,现在在查询日期型字段时发现问题:为表A与datagridview1的bindingsource设置filter属性,以查询数据(表A)。Filter的条件为表A中某日期类型字段field_date大于form上datetimepick1控件的输入值。我的代码:Selected_field=me.combobox1.text'当前查询字段由combobox1选择,目前选择的TEXT是“日期”Me.bindingsource.filter=selected_field>me.datetimepicker1.value出错:从字符串“日期”到类型“Date”的转换无效。但我写成:Me.bindingsource.filter=日期>me.datetimepicker1.valueIDE直接提示“未声明名称日期”我又改为Me.bindingsource.filter="日期>me.datetimepicker1.value"报错:未找到列me.datetimepicker1.value该怎么写呢?我是初学者,忘不吝赐教,谢谢!
解决方案
解决方案二:
Me.bindingsource.filter=selected_field+">"+me.datetimepicker1.value*****************************************************************************欢迎使用CSDN论坛专用阅读器:CSDNReader(附全部源代码)http://feiyun0112.cnblogs.com/
解决方案三:
变量不要放在“”里面,常量加上“”Me.bindingsource.filter=selected_field+">"+me.datetimepicker1.value我也是新手,叫我前辈不敢当,那。。就叫声大哥吧^-^
解决方案四:
变量不要放在“”里面,常量加上“”Me.bindingsource.filter=selected_field+">"+me.datetimepicker1.value我也是新手,叫我前辈不敢当,那。。就叫声大哥吧^-^
解决方案五:
查询日期在不同的数据库中是不同的,ADO.Net也不同,你直接查MSDN帮助filter即可。我这里有一个过滤器组件,源码,可以解决你的问题<ahref="http://www.webmis.com.cn/images/GoldFilter.JPG"target="_blank"><imgsrc="http://www.webmis.com.cn/images/GoldFilterX.JPG"alt="效果图"border="0"title="点击看大图"></a>
解决方案六:
解决方案七:
谢谢各位的回复。我试了,Me.bindingsource.filter=selected_field+">"+me.datetimepicker1.value虽然还是报错:“无法在System.DateTime和System.Int32上执行“>”操作”,但先前的问题已不再出现。但selected_field确实是DATETIME类型(ACCESS表),me.datetimepicker1.value也是日期时间型的,奇怪了。
解决方案八:
Me.bindingsource.filter=selected_field+">#"+me.datetimepicker1.Value+"#"
解决方案九:
谢谢amandag,按照你的办法就OK了!不过我有点不理解,因为报错后,我鼠标悬停在me.datetimepicker1.Value上,显示的值是"#5/6/2008#",居然还要加#,那么就是说不加#的日期是system.int32类型的?
解决方案十:
又遇到问题了。我要加一个filter条件,同时要满足selected_field<me.datetimepicker2.Value代码:Me.bindingsource.filter=(selected_field+">#"+me.datetimepicker1.Value+"#")and(selected_field+"<#"+me.datetimepicker2.Value+"#")报错:从字符串“日期>=#2008-5-6#”到类型“Long”的转换无效。查了MSDN,DataColumn.Expression属性支持AND的呀,为什么呢?
解决方案十一:
Me.bindingsource.filter=selected_field+">#"+me.datetimepicker1.Value+"#and"+selected_field+"<#"+me.datetimepicker2.Value+"#"
解决方案十二:
谢谢楼上。可以了。