c#两个日期之间的搜索

本文关键字:日期 之间 搜索 两个 | 更新日期: 2023-09-27 18:12:56

我有一个数据(访问),我使用日期时间选择器。我有近千条数据

Name:        Birthday:       
AAAA         05.02.2000
BBBB         01.08.1995
CCCC         04.07.1995
DDDD         05.07.1995

我使用2个datetimePicker和一个按钮,第一次datetimePicker2,最后一次datetimePicker3,然后单击过滤按钮。我想显示我的datagridview上的例子01.1.1995 - 01.12.1995谁是他们出生列表

我使用了以下代码:

private void btnFiltre_Click(object sender, EventArgs e)
{
    table.Clear();
    OleDbDataAdapter adtr = new OleDbDataAdapter("SELECT * FROM data WHERE date BETWEEN'" + 
              dateTimePicker2.Text + "' AND '" + dateTimePicker3.Text + "'", cnn);           
    adtr.Fill(table);
    dataGridView1.DataSource = table;
}

但我总是接受警告。

我该怎么做?

c#两个日期之间的搜索

许多细节缺失,但是,像往常一样:不要使用字符串连接来构建sql命令。
使用如下参数化查询

private void btnFiltre_Click(object sender, EventArgs e)
{
    table.Clear();
    OleDbDataAdapter adtr = new OleDbDataAdapter("SELECT * FROM data WHERE date BETWEEN ? AND ?", cnn)
    adtr.SelectCommand.Parameters.AddWithValue("@p1",dateTimePicker2.Value)
    adtr.SelectCommand.Parameters.AddWithValue("@p2",dateTimePicker3.Value)
    adtr.Fill(table);
    dataGridView1.DataSource = table;
}

细节缺失:

  • 您正在使用哪个数据库?如果它是一个MS-Access,那么date是一个保留关键字,需要封装在方括号
  • 中。
  • 在哪里初始化连接?(不要使用全局连接对象)
  • 您的日期字段是日期时间还是字符串(坏,非常坏)