0

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

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'.
4

3 回答 3

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'

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

于 2013-03-16T06:25:59.420 回答
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) + "'"

希望这可以帮助你

于 2013-03-16T03:45:21.827 回答
0

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

"Select * from tbl_men_schedule where fld_mem_id=0 and fld_startdate='" + 
txt_startDate.Text + "' and fld_enddate='" + 
txt_enddate.Text + "'"
于 2013-03-16T03:52:52.130 回答