dataadapter.Fill(ds) 中条件表达式中的数据类型不匹配

Data type mismatch in criteria expression in dataadapter.Fill(ds)

实际上我在用 C# 创建报告,当我选择日期并单击显示报告时必须使用 Datetimepicker、Button 和 datagridview,它在 dataadapter.Fill(ds) 中给我错误;线 我在这里使用访问数据库,我给出了我的 table 结构

AccountNumber--Number
Account-- Memo
Date--Date/Time
Description--Memo
Post_Ref--Memo
Debit--Number
Credit--Number
Balance--Number


private void btnshowreport_Click(object sender, EventArgs e)
        {
 string connetionString = null;
            DateTime startT = new DateTime();
            DateTime endT = new DateTime();
            startT = dateTimePicker1.Value.Date;
            endT = dateTimePicker2.Value.Date;
            connetionString = ConfigurationManager.ConnectionStrings["AccessConnectionString"].ConnectionString;
            cnn.ConnectionString = connetionString;
string sql = "SELECT * FROM Billing where [Date] Between'"+startT+"'And '"+endT+"'";
            OleDbConnection connection = new OleDbConnection(connetionString);
            OleDbDataAdapter dataadapter = new OleDbDataAdapter(sql, connection);
            DataTable ds = new DataTable();
            connection.Open();
            dataadapter.Fill(ds);
            connection.Close();
            dataGridView1.DataSource = ds;
            show_data();
}

您需要正确的日期表达式格式:

string sql = "SELECT * FROM Billing where [Date] Between #" + startT.ToString("yyyy'/'MM'/'dd") + "# And #" + endT.ToString("yyyy'/'MM'/'dd") + "#";