MS Access语法错误(缺少运算符)

时间:2013-03-16 03:41:47

标签: 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'.

3 个答案:

答案 0 :(得分: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'

但是,如果您使用参数查询,则无需分隔这些值。

答案 1 :(得分: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) + "'"

希望这有助于你

答案 2 :(得分:0)

如果您硬编码“0”......并且您缺少单引号。

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