2013-03-16 72 views
0

我正在使用下面的代码从访问数据库中获取记录。现在我在查询表达式中得到了下面的错误语法错误(缺少运算符)。 我无法理解此问题。请帮我解决这个问题。MS Access语法错误(缺少运算符)

cmd = new OleDbCommand(@"Select * from tbl_men_schedule where fld_mem_id=" + 0 + " and fld_startdate=" + Convert.ToDateTime(txt_startDate.Text) + " and fld_enddate=" + Convert.ToDateTime(txt_enddate.Text) + "", con); 
da = new OleDbDataAdapter(cmd); 
DataSet ds = new DataSet(); 
da.Fill(ds); 

Syntax error (missing operator) in query expression 'fld_mem_id=0 and fld_startdate=1/4/2013 12:00:00 AM and fld_enddate=4/11/2013 12:00:00 AM'. 
+0

错误本身是自我解释,并建议如何解决。 – 2013-03-16 03:47:25

+0

看起来像你忘了引号... – 2013-03-16 04:04:00

+0

user2063626我想解决我的问题。 – user2176150 2013-03-16 04:05:28

回答

1

如果fld_startdatefld_enddate的日期/时间数据类型,请将这些日期值与#分隔符。

where 
     fld_mem_id=0 
    and fld_startdate=#1/4/2013 12:00:00 AM# 
    and fld_enddate=#4/11/2013 12:00:00 AM# 

如果它们是文本数据类型,请将它们用引号。

where 
     fld_mem_id=0 
    and fld_startdate='1/4/2013 12:00:00 AM' 
    and fld_enddate='4/11/2013 12:00:00 AM' 

但是,如果您改用参数查询,则不需要分隔这些值。

0

你的说法应该是 -

"Select * from tbl_men_schedule where fld_mem_id=" + 0 + " and fld_startdate='" + Convert.ToDateTime(txt_startDate.Text) + "' and fld_enddate='" + Convert.ToDateTime(txt_enddate.Text) + "'" 

希望这有助于你

0

如果你硬编码 “0” ......和你缺少单引号。

"Select * from tbl_men_schedule where fld_mem_id=0 and fld_startdate='" + 
txt_startDate.Text + "' and fld_enddate='" + 
txt_enddate.Text + "'" 
相关问题