我13岁,我是编程新手 我在access数据库中有1个datagridview和2个dateTimepicker和logs / infos。 我想在2日期之间获取数据。我看到了很多关于此的话题,但没有任何帮助我。
这是我的代码
开始时:
public OleDbConnection bag = new OleDbConnection("Provider=Microsoft.Ace.Oledb.12.0;Data Source=data.accdb");
public DataTable table = new DataTable();
public OleDbDataAdapter adtr = new OleDbDataAdapter();
public OleDbCommand kmt = new OleDbCommand();
我尝试了两件事
首先:
获取数据的功能:
string cmdText = "SELECT * FROM TotalInv " +
"WHERE InventoryDate BETWEEN @p1 AND @p2";
DateTime dt = this.dateTimePicker2.Value.Date;
DateTime dt2 = this.dateTimePicker3.Value.Date;
kmt.CommandText = cmdText;
kmt.Parameters.AddWithValue("@p1", dt);
kmt.Parameters.AddWithValue("@p2", dt2);
OleDbDataAdapter adapter = new OleDbDataAdapter(kmt.CommandText, bag);
table.Clear();
adtr.Fill(table);
bag.Close();
错误1。 :InvalidOperationException未处理。 line adtr.Fill(table) - >在调用“Fill”之前,Selectcommand没有启动
其次:
bag.Open();
{
table.Clear();
OleDbCommand kmt2 = new OleDbCommand("SELECT * FROM TotalInv WHERE InventoryDate BETWEEN @date1 AND @date2", bag);
kmt2.Parameters.AddWithValue("@date1", dateTimePicker2.Value);
kmt2.Parameters.AddWithValue("@date2", dateTimePicker3.Value);
OleDbDataAdapter adtr = new OleDbDataAdapter(kmt2);
adtr.Fill(table);
dataGridView1.DataSource = table;
}
bag.Close();
2的错误:OleDB未处理,“SELECT * FROM TotalInv WHERE InventoryDate BETWEEN @ date1 AND @ date2”中存在语法错误,包); 谢谢你的任何想法,抱歉我的英语不好。