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;
}
但我总是接受警告。
我该怎么做?
许多细节缺失,但是,像往常一样:不要使用字符串连接来构建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
是一个保留关键字,需要封装在方括号 中。 - 在哪里初始化连接?(不要使用全局连接对象)
- 您的日期字段是日期时间还是字符串(坏,非常坏)