不是select的问题吧!show you codes

解决方案 »

  1.   

    dt1改为dt1.tostring(),dt2改为dt2.tostring()
      

  2.   

    1,
    strdt1, dt做成字符串型的试试。
    2,
    "select MCGS_Time,TotalNum from 工程表 where 工程表.MCSG_Time>=" +
    "Convert(DateTime,"+strdt1+")"
      

  3.   

    把sql中的#(井号)改成'(单引号)试试。
      

  4.   

    建议你先看看MessageBox.Show(sql);的值是否正确
      

  5.   

    我试验了一下,好像是好用的
    System.DateTime ww=DateTime.Now;
    string sql="select * from timer where time1<#"+ww+"# and time2>#"+ww+"#";
    time1,time2都是Access数据库中的日期/时间字段如果显示的是“×××至少一个参数没有被指定值×××”,请仔细查看dt1 或 dt2的值是否为空我觉得有可能是其他地方的问题,呵呵
      

  6.   

    在string sql 语句设个断点,看sql语句是否完整
      

  7.   

    DateTime dt1=Convert.ToDateTime(this.dateTimePicker1.Value.ToShortDateString().Trim());

    DateTime dt2=Convert.ToDateTime(this.dateTimePicker2.Value.ToShortDateString().Trim());


    str="SELECT xh,start_time,should_sf FROM jsj_sj WHERE (start_time BETWEEN '"+dt1+"' AND '"+dt2+"')";
      

  8.   

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

  9.   

    单引号同样须用又引号引起来
    比如有如下语句:select * from table1 where id='123';
    写成字符串为: "select * from table where id= " + "'" +"123" +"'"
    如果123为参数,那两边的"'"绝对不能少!
      

  10.   

    反正不是什么秘密,下面是查询代码
    private void btnQuerry_Click(object sender, System.EventArgs e)
    {
    DateTime dt, dt1, dt2;
    string   sdt1, sdt2; //获取用户选择的日期时间值
    dt1 = dtp1.Value;
    dt2 = dtp2.Value;/* try
    {
    int rt = dt1.CompareTo(dt2);
    if(rt > 0)
    {
    dt = dt1;
    dt1 = dt2;
    dt2 = dt;
    }
    }
    catch(ArgumentException aece)
    {
    MessageBox.Show("输入日期格式有误,请重新输入.\r\n" + aece.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
    }
    catch(Exception aece2)
    {
    MessageBox.Show(aece2.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
    return;
    } sdt1 = dt1.ToString();
    string temp = sdt1.Substring(0, sdt1.Length - 8);
    sdt1 = temp + " 00:00:01"; sdt2 = dt2.ToString();  */ //创建查询sql语句
    //string sql = "select MCGS_Time,存水位 from 水位组_MCGS where 水位组_MCGS.MCSG_Time>=#" + dt1 + "# and 水位组_MCGS.MCSG_Time<=#" + dt2 +"#";
    //string sql = "select MCGS_Time,存水位 from 水位组_MCGS where MCSG_Time>=#" + dt1 + "# and MCSG_Time<=#" + dt2 +"#";
    //string sql = "select MCGS_Time,存水位 from 水位组_MCGS where (MCSG_Time between #" + dt1 + "# and #" + dt2 +"#)";
    string sql = "select MCGS_Time,存水位 from 水位组_MCGS where (MCSG_Time>#" + dt1 + "#)";
    //string sql = "select MCGS_Time,存水位 from 水位组_MCGS";     try
    {
    if(conn == null)
    {
    doDisconnect();
    doConnect();
    }
    if(conn.State != ConnectionState.Open)
    conn.Open(); OleDbCommand mycmd = new OleDbCommand(sql, conn);
    OleDbDataReader mydr = mycmd.ExecuteReader(); //清除网格中的数据
    dataGrid.DataSource = null; //为datagrid添加数据
    DataRow datarow;
    this.Cursor = Cursors.WaitCursor; while(mydr.Read())
    {               
    datarow = table.NewRow();
    //"日期/时间"
    datarow[0] = mydr[0].ToString();
    //"水位值"
    datarow[1] = mydr[1].ToString();
    table.Rows.Add(datarow);
    } dataGrid.DataSource = table;
    mydr.Close();
    this.Cursor = Cursors.Default;
    }
    catch(Exception cmde)
    {
    this.Cursor = Cursors.Default;
    MessageBox.Show(cmde.Message);
    }
    }
      

  11.   

    呵呵,揭帖,谢谢各位老哥啊,问题解决恶劣,日他奶奶的,原来是这样的
    错误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后多了个()括号啊,日日日日日!!!!