C# 如何使用ODBC适配器从Access db检索数据?
我的C#中的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
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,使用散列(#)就可以了。我应该选择参数化还是散列(#)