如图所示,已可实现时间段的选择查询问题。但是勾选其他选项后,实现的是全部数据的查询,无法实现某一时间段特定选项的查询。代码如下,本人小白,还请各位大侠不吝赐教。
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 + "# ";
}
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 + "# ";
}
{
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 + "# ";
}
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 + "# ";
}
这就说明是SQL语句问题了
在sql执行之前打印出sql语句,或者在每一次sql拼接之后打印出拼接后的结果,就会很明白了