Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 按datagrid、combobox、datetimepicker进行搜索_C#_Mysql_Combobox_Datagrid_Datetimepicker - Fatal编程技术网

C# 按datagrid、combobox、datetimepicker进行搜索

C# 按datagrid、combobox、datetimepicker进行搜索,c#,mysql,combobox,datagrid,datetimepicker,C#,Mysql,Combobox,Datagrid,Datetimepicker,我想按组合框和datimepicker进行搜索,我有一个表,其中包含3个日期:接收、预测、发送和其他数据,然后我想我的组合框包含以前的标题3个日期,当我选择其中一个,并选择date by datetimepicker时,所选每个日期的结果将显示在datagrid中,因此,您的数据位于数据表中。如果您还没有这样做,那么在datagridview中显示它的一个简单方法是通过绑定,如果我们使用bindingsource,我们的生活会变得更轻松: DataTable dt = new DataTable

我想按组合框和datimepicker进行搜索,我有一个表,其中包含3个日期:接收、预测、发送和其他数据,然后我想我的组合框包含以前的标题3个日期,当我选择其中一个,并选择date by datetimepicker时,所选每个日期的结果将显示在datagrid中,因此,您的数据位于数据表中。如果您还没有这样做,那么在datagridview中显示它的一个简单方法是通过绑定,如果我们使用bindingsource,我们的生活会变得更轻松:

DataTable dt = new DataTable();
someDataAdapter.Fill(dt);       //datatable is now full of data

dataGridViewX.DataSource = new BindingSource() { DataSource = dt }; //bind througha  bindingsource
BindingSource支持在底层数据源访问datatable时进行过滤,实际上是通过该表公开的DataView进行过滤

这意味着我们可以选择一个组合框,如DexChanged事件处理程序:

somecombo_SelectedIndexChanged(...){

  var bs = dataGridViewX.DataSource as BindingSource;
  var itm = "forecast"; //i presume it comes from somecombo.SelectedItem etc

  bs.Filter = $"[{itm}] = #{datepicker.Value:yyyy-MM-dd}#";

}
我假设您的组合包含表中列的名称。如果没有,您必须将它们从显示的内容解码为列名称,然后我们设置一个过滤器,如:

"[forecast] = #2020-09-21#"
对于日期为9月21日的所有记录。请注意,日期也可以有时间部分,因此,如果日期有时间,您将需要更多类似于:

 bs.Filter = $"[{itm}] >= #{datepicker.Value:yyyy-MM-dd}# AND [{itm}] < #{datepicker.Value.AddDays(1):yyyy-MM-dd}# ";
带时间的日期就像一个带小数点的数字:1.234不会与等于1的数字匹配,但会与大于或等于1且小于2的数字匹配


同样,在dtp上有一个事件处理程序,在dtp值更改时更改过滤器

您的数据是否已经在datatable中/datagridview是否绑定到该表?是的,dataghridview中的所有数据都存在于我的Databases中,这并不能回答问题,对不起,a不是数据库对不起,我把datatable和数据库搞混了,我的数据在datatable中,对不起,我的英语不好