string sql = 'select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time >= ' + dt1 + ' and 工程表.MCSG_Time <='  + dt2;

解决方案 »

  1.   

    string sql = 'select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time >= ' + dt1 + ' and 工程表.MCSG_Time <='  + dt2 + "'";
      

  2.   

    是什么数据库?要是Access数据库的话,要在日期变量前后加#号。
    如果是其他数据库,在变量前后加单引号。
      

  3.   

    string sql = "select MCGS_Time,TotalNum from 工程表 where " + "工程表.MCSG_Time >= '" + dt1 + "' and 工程表.MCSG_Time <= '" + dt2+"'"; 在时间上加上单引号‘;
      

  4.   

    ×××是access数据库×××1,2楼的老兄,首先谢谢,在c#中不能象你们这样用单引号赋值吧?
    但是我把语句改了一下:
    string sql = "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>='" + dt1 + "' and 工程表.MCSG_Time<='" + dt2 +"'";
    也就是把日期/时间用‘’括起来了。出现错误::
    --至少一个参数没有被指定值--3楼老兄,也谢先,因为是access数据库,所以根据你的说法用#连接日期,如下:
    string sql = "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>=#" + dt1 + "# and 工程表.MCSG_Time<=#" + dt2 +"#";运行,还是出现错误:
    --至少一个参数没有被指定值--也就是说根1,2楼一样错误啊??真有点晕了。
      

  5.   

    string sql = "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>= #" & dt1 & "# and 工程表.MCSG_Time<=#" & dt2  & "#";
      

  6.   

    你确定dt1和dt2都被赋值了吗?
      

  7.   

    当然啊,我调试时,sql字符串都有正确显示日期的。
      

  8.   

    呵呵,揭帖,谢谢各位老哥啊,问题解决恶劣,日他奶奶的,原来是这样的  
    错误sql  
    string  sql  =    "select  MCGS_Time,存水位  from  水位组_MCGS  where  MCSG_Time  >=#  "  +  dt1  +    "#  and  MCSG_Time  <=#  "  +  dt2  +  "#  ";  
    正确sql  
    string  sql  =    "select  MCGS_Time,存水位  from  水位组_MCGS  where  (MCGS_Time  >=#  "  +  dt1  +    "#  and  MCGS_Time  <=#  "  +dt2  +    "#)  ";  
    看出来了哇,就是在where后多了个()括号啊,日日日日日!!!!