在打印之前按日期过滤DataGridView

时间:2010-02-08 18:41:45

标签: c# datetime datagridview

我正在通过TIMESTAMP列过滤DataGridView,以便用户可以确定要打印的数据的日期。以下是我创建过滤后的DataGridView的方法。但是,为了获得正确的日期,例如2010年2月8日到2010年2月10日,我必须先选择一个日期,因此日期范围必须是2010年2月7日到2010年2月10日才能获得2010年2月8日到2010年2月10日。这对用户来说太混乱了。

TIMESTAMP声明为SqlDbType.DateTime

我搞砸了哪里?

private void CreateFilteredDataGridView(DataGridView dgv, string fromDate, string toDate)
{
    try
    {
        myDataSet = new DataSet();
        myDataSet.CaseSensitive = true;

        DataAdapter.SelectCommand.Connection = myConnection;
        DataAdapter.TableMappings.Clear();
        DataAdapter.TableMappings.Add("Table", "GARAGE");
        DataAdapter.Fill(myDataSet);

        myDataView = new DataView(myDataSet.Tables["GARAGE"], "TIMESTAMP >= '" + 
        Convert.ToDateTime(fromDate) + "' AND TIMESTAMP <= '" + 
        Convert.ToDateTime(toDate) + "'", "TIMESTAMP", DataViewRowState.CurrentRows);

        dgv.DataSource = myDataView;
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

}

1 个答案:

答案 0 :(得分:1)

我不知道你什么时候传递给那个方法,但是你的DateTime的 time 部分可能导致问题。确保起始日期从00:00:00开始(如果没有时间,则应该已经开始),并且结束日期包含23:59:59。