注册 登录
编程论坛 ASP.NET技术论坛

[求助]关于综合查询的历史性问题!怎么解决参数为空的问题 和 去掉最后一个and

606liutong 发布于 2007-07-24 17:15, 556 次点击

string sqlstr = "select ID,NAME,AGE,JERQUEDATE,HOSPITAL,CLINIC,JC_DOCTOR,MACHINE,MIRRORIMAGE,DIAGNOSES,PATHOLOGY,SALARY from patientMsg where ";

if (this.DropHospital.SelectedItem.Text != "----请选择----")
{
sqlstr += " HOSPITAl='"+this.DropHospital.SelectedItem.Text+"'and";
}
if (this.DropClinic.SelectedItem.Text != "")
{
sqlstr += " CLINIC='" + this.DropClinic.SelectedItem.Text + "'and";
}
if (this.DropJcDoctor.SelectedItem.Text != "----请选择----")
{
sqlstr += " JC_DOCTOR ='" + this.DropJcDoctor.SelectedItem.Text + "'and";
}
if (this.DropSjDoctor.SelectedItem.Text != "----请选择----")
{
sqlstr += " SJ_DOCTOR ='" + this.DropSjDoctor.SelectedItem.Text + "'and";
}
if (this.DropMachine.SelectedItem.Text != "----请选择----")
{
sqlstr += " MACHINE ='" + this.DropMachine.SelectedItem.Text + "'and";
}
if (this.DropDate.SelectedItem.Text == "当天")
{
sqlstr += " JERQUEDATE ='" + DateTime.Today.ToShortDateString() + "' and";
}
//else if (this.DropDate.SelectedItem.Text == "本月")
{
sqlstr += " JERQUEDATE between '" + DateTime.Today.Year.ToString() + "-" + DateTime.Today.Month.ToString() + "-1" + "' and '" + DateTime.Today.ToShortDateString() + "' and";
}
//else if (this.DropDate.SelectedItem.Text == "本年")
{
sqlstr += " JERQUEDATE between '" + DateTime.Today.Year.ToString() + "-1-1" + "' and '" + DateTime.Today.ToShortDateString() + "' and";
}
//if (this.DropAge.SelectedItem.Text != "全部")
{
sqlstr += " AGE && '" + this.DropAge.SelectedItem.Text + "' && '" + this.txtAge.Text + "' and";
}

this.DropAge.SelectedItem.Text 里面是 > ,< , >= , <= ,=
怎么解决参数为空的问题 和 去掉最后一个 and
后面几句被屏掉的句子有点错误,大虾们也帮忙看看,谢谢了

[此贴子已经被作者于2007-7-24 17:18:01编辑过]

3 回复
#2
jyoseyi2007-07-24 17:41
string sqlstr = "select ID,NAME,AGE,JERQUEDATE,HOSPITAL,CLINIC,JC_DOCTOR,MACHINE,MIRRORIMAGE,DIAGNOSES,PATHOLOGY,SALARY from patientMsg where
if (this.DropHospital.SelectedItem.Text != "----请选择----")
{
sqlstr += " HOSPITAl='"+this.DropHospital.SelectedItem.Text+"'and";
}



在where 后面 写1=1 ,然后把and 提前 如:



string sqlstr = "select ID,NAME,AGE,JERQUEDATE,HOSPITAL,CLINIC,JC_DOCTOR,MACHINE,MIRRORIMAGE,DIAGNOSES,PATHOLOGY,SALARY from patientMsg where 1=1
if (this.DropHospital.SelectedItem.Text != "----请选择----")
{
sqlstr +="and";
sqlstr += " HOSPITAl='"+this.DropHospital.SelectedItem.Text+"'";
}

下面的同理修改就是了
#3
606liutong2007-07-24 18:01
问题解决了 在这里,衷心地感谢jyoseyi,是你给了我再编码的能力,让我看到了清晨的光辉和那蓬勃的朝气。
是你,打破了对于编码人员来说“只有白天与黑夜,没有黎明与黄昏”的传说和定理。
jyoseyi,编码中的战斗机,喔耶!
代表全人类向你敬礼!
#4
冰彩虹2007-07-25 08:54
楼上的,你太有才了哈,
1