我有一个数据(访问),我使用datetimePicker。我有近千个数据
Name: Birthday:
AAAA 05.02.2000
BBBB 01.08.1995
CCCC 04.07.1995
DDDD 05.07.1995
我首次使用2个datetimePicker和一个按钮,datetimePicker2,最后一次使用datetimePicker3,然后单击“过滤器”按钮。我希望告诉我datagridview例如01.01.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;
}
但我总是警告。
我能做什么?
答案 0 :(得分:1)
许多细节缺失,但是,像往常一样:不要使用字符串连接来构建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;
}
缺少详细信息:
date
是一个保留关键字,需要用方括号括起来