我对C#比较新,但学习。我有一个名为Returns的表的DGV,Date列是DateOfEntry。我认为设置它会相当简单..但我一直得到操作数错误,我不知道为什么。我已经研究过这个并没有结束,并尝试了各种方法,没有运气。以下是我正在使用的代码,有人可以向我解释我可能做错了吗?
使用和访问.mdb文件作为数据库
returnsBindingSource.Filter = ("Select * from Returns where DateOfEntry
between '"+dateTimePicker1.Value.ToString()+"' and
'"+dateTimePicker2.Value.ToString()+"'");
答案 0 :(得分:1)
您不应将select语句指定为BindingSource.Filter
。它需要一个字符串过滤器表达式,它遵循这些expression syntax。
实际上,它是一种客户端过滤机制,不需要往返数据库服务器来过滤数据。将过滤器表达式分配给BindingSource.Filter
时,过滤器将应用于基础数据源,例如DataTable
上。
因此,您应该在表单的Load
事件中加载数据,然后在过滤器按钮的Click
事件中对加载的数据应用过滤器。
日期值应包含在#符号中。例如:
returnsBindingSource.Filter =
String.Format("DateOfEntry >= #{0:yyyy/MM/dd}# AND DateOfEntry <= #{1:yyyy/MM/dd}#",
dateTimePicker1.Value,
dateTimePicker2.Value);