如图所示,已可实现时间段的选择查询问题。但是勾选其他选项后,实现的是全部数据的查询,无法实现某一时间段特定选项的查询。代码如下,本人小白,还请各位大侠不吝赐教。
private void btnSelect_Click(object sender, EventArgs e)
        {            DataSet ds = new DataSet();
            ds.Clear();
         
            string queryselect = "select * from jt where 1=1 ";            if (cb1.Checked)
            {
                queryselect += " and model = '" + cbbcategory.Text + " '";
            }
            if (cb2.Checked)
            {
                queryselect += " and modelnumber" + " like '%" + txtMN.Text + "%'";
            }
            if (cb3.Checked)
            {
                queryselect += " and problemdescribe" + " like '%" + cbbQC.Text + "%'";
            }
            if (cb4.Checked)
            {
                queryselect += " and author" + " like '%" + txtAuthor.Text + "%'";
            }
            if (cb7.Checked)
            {
                queryselect += " and data" + " like '%" + txtData.Text + "%'";
            }
            
            if (cb5.Checked && cb6.Checked)
            {
               string ss = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd 23:00:00");
               string ee = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd 23:00:00");
               queryselect = "select * from jt where data between #" + ss + "# and #" + ee + "# ";
            }

解决方案 »

  1.   

                if (cb5.Checked && cb6.Checked)
                {
                   string ss = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   string ee = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   queryselect = "select * from jt where data between #" + ss + "# and #" + ee + "# ";
                }
    改成
                if (cb5.Checked && cb6.Checked)
                {
                   string ss = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   string ee = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   queryselect = "and data between #" + ss + "# and #" + ee + "# ";
                }
      

  2.   

    上面的错了,应该是:
                if (cb5.Checked && cb6.Checked)
                {
                   string ss = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   string ee = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   queryselect = "select * from jt where data between #" + ss + "# and #" + ee + "# ";
                }
    改成
                if (cb5.Checked && cb6.Checked)
                {
                   string ss = dateTimePicker1.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   string ee = dateTimePicker2.Value.Date.ToString("yyyy-MM-dd 23:00:00");
                   queryselect += " and data between #" + ss + "# and #" + ee + "# ";
                }
      

  3.   

    动态sql拼接有误,如楼上所示
      

  4.   

    但是勾选其他选项后,实现的是全部数据的查询,无法实现某一时间段特定选项的查询。
    这就说明是SQL语句问题了
      

  5.   

    打印,一个很好的程序调试方式
    在sql执行之前打印出sql语句,或者在每一次sql拼接之后打印出拼接后的结果,就会很明白了