使用datetimepicker没有给出一个或多个必需参数的值

时间:2017-10-19 15:00:27

标签: c# datagridview filter datetimepicker

我的代码有问题。我想在两个日期之间过滤。 这是我的代码。我正在使用Microsoft Access数据库。

private void button2_Click(object sender, EventArgs e)
{
    OleDbCommand cmd = new OleDbCommand("Select * From Table2 where TransacDate between '" + dateTimePicker1.Value.ToString() + "' And '" + dateTimePicker2.Value.ToString() + "'", conn);
    OleDbDataAdapter da = new OleDbDataAdapter(cmd);
    DataSet ds = new DataSet();
    da.Fill(ds);
    dataGridView1.DataSource = ds; 
}

现在,我的datagridview中有一个空行。

3 个答案:

答案 0 :(得分:2)

我最近用日期时间格式犯了同样的错误。

尝试

"MM-dd-yyyy"

而不是

"MM-dd-yyy"

答案 1 :(得分:0)

Access中的日期应由# octothorpes括起来。

将您的代码更改为:

"Select * From Table2 where Transac_Date between #" + dateTimePicker1.Value.ToString("MM-dd-yyyy") + "# And #" + dateTimePicker2.Value.ToString("MM-dd-yyyy") + "#";

答案 2 :(得分:0)

目前还不清楚应用程序或前端生成此sql语句的内容。它看起来不像Access语法。

我建议,在Access中,使用标准查询设计视图 - 并构建一个查询,以产生您寻找的数据集。然后,您可以选择/将此查询放入SQL视图以查看语法。