我正在通过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);
}
}
答案 0 :(得分:1)
我不知道你什么时候传递给那个方法,但是你的DateTime的 time 部分可能导致问题。确保起始日期从00:00:00开始(如果没有时间,则应该已经开始),并且结束日期包含23:59:59。