C# 如何使用ODBC适配器从Access db检索数据?

C# 如何使用ODBC适配器从Access db检索数据?,c#,ms-access,odbc,C#,Ms Access,Odbc,我的C#中的OdbcDataReader有问题。当我试图从MS Access数据库检索数据时,我有一个包含连接详细信息的类 这是我的代码: string datefrom = dateFrom.Value.Date.ToShortDateString() ; string dateto = dateTo.Value.Date.ToShortDateString() ; query = "SELECT date_received,item_details,quantity FROM tbl_s

我的C#中的
OdbcDataReader
有问题。当我试图从MS Access数据库检索数据时,我有一个包含连接详细信息的类

这是我的代码:

string datefrom =  dateFrom.Value.Date.ToShortDateString() ;
string dateto =  dateTo.Value.Date.ToShortDateString() ;
query = "SELECT date_received,item_details,quantity FROM tbl_stock WHERE date_received between "+ datefrom +" and "+ dateto +"";

OdbcDataReader dr = execmd.selectDataReader(query);

while (dr.Read())
{
    string rdate = dr[0].ToString();
    string item = dr[1].ToString();
    string quantity = dr[2].ToString();

    query1 = "insert into tmp_tbl_stock values('"+ rdate +"','"+ item +"','"+ quantity +"')";
    execmd.executeCmd_Sql(query1);
}
当Access数据库的某些行位于此日期范围之间时,ODBC未检索任何数据


提前感谢

Jet通常希望日期的格式为#mm/dd/yyyy#,因此这可能会导致您的问题。可能是ODBC驱动程序对日期做了一些事情

ODBC提供程序可能没有正确解释您的日期。您应该使用一个参数化查询,在这里您可以指定参数类型,而无需使用字符串连接Thanx Steve,但是我在参数化查询方面实际上有点弱,请您帮助我……是的,但是您需要更改selectDataReader的代码。你能给我看一下密码吗?(executeCmd也需要更改为changedm,但这将很容易)MS Access中的日期是用哈希(#)分隔的,而不是撇号(')。参数是一个更好的主意。最好将日期格式化为年、月、日.Remou,使用散列(#)就可以了。我应该选择参数化还是散列(#)