使用两个dateTimepicker

时间:2017-07-01 19:58:55

标签: c# ms-access datetimepicker

我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”中存在语法错误,包); 谢谢你的任何想法,抱歉我的英语不好。

0 个答案:

没有答案