我使用以下代码从访问数据库中获取记录。现在我在查询表达式中得到了以下错误语法错误(缺少运算符)。 我无法理解这个问题。请帮我解决这个问题。
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 :(得分:1)
如果fld_startdate
和fld_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 + "'"