想做一个组合式的查询,这样可以么?C#和asp.net
事情是这样的,有五个选项,就是姓名,生日范围,顾客ID,地址,购货金额这些,
我为了把不同的情况分开就象下面那样,给分成了32中不同情况写的,分32条的时候
用的是1,10,100,1000,10000,的和的不同情况分开的。
希望能够根据输入的不同,而去选择不同的记录集,我这样做是不是可以?特别想知道比较专业的做法是什么?我这个还没调试成呢,也不知道是不是我写的sql语句不对呀?希望给点建议,你们是如何做的呢?盼望回复
string select1="";//这里想实现组合查询
string select2="";
string select3="";
string select4="";
string select5="";
string wherestring="";
long fenlei=0;
if(name.Text.Trim()!=null)
{
select1="姓名="+name.Text.Trim();
fenlei+=1;
}
if(gustid.Text.Trim()!=null)
{
select2="顾客ID="+gustid.Text.Trim();
fenlei+=10;
}
if(jine.Text.Trim()!=null)
{
select3="购货金额 >"+jine.Text.Trim();
fenlei+=100;
}
if(l_bir.Text!=null&&h_bir.Text!=null)
{
select4="生日>="+l_bir.Text.Trim()+"<="+h_bir.Text.Trim();
fenlei+=1000;
}
if(instr.Text.Trim()!=null)
{
select5="地址 like %"+instr.Text.Trim()+"%";
fenlei+=10000;
}
switch (fenlei)
{
case 00000:{wherestring="";break;}
case 00001:{wherestring="where"+select1;break;}
case 00010:{wherestring="where"+select2;break;}
case 00011:{wherestring="where"+select1+"&&"+select2;break;}
case 00100:{wherestring="where"+select3;break;}
case 00101:{wherestring="where"+select3+"&&"+select1;break;}
case 00110:{wherestring="where"+"&&"+select3+"&&"+select2;break;}
case 00111:{wherestring="where"+select3+"&&"+select2+"&&"+select1;break;}
case 01000:{wherestring="where"+select4;break;}
case 01001:{wherestring="where"+select4+"&&"+select1;break;}
case 01010:{wherestring="where"+select4+"&&"+select2;break;}
case 01011:{wherestring="where"+select4+"&&"+select1+"&&"+select2;break;}
case 01100:{wherestring="where"+select4+"&&"+select3;break;}
case 01101:{wherestring="where"+select4+"&&"+select3+"&&"+select1;break;}
case 01110:{wherestring="where"+select4+"&&"+select3+"&&"+select2;break;}
case 01111:{wherestring="where"+select4+"&&"+select3+"&&"+select1+"&&"+select2;break;}
case 10000:{wherestring="where"+select5;break;}
case 10001:{wherestring="where"+select5+"&&"+select1;break;}
case 10010:{wherestring="where"+select5+"&&"+select2;break;}
case 10011:{wherestring="where"+select5+"&&"+select2+"&&"+select1;break;}
case 10100:{wherestring="where"+select5+"&&"+select3+"&&"+select1;break;}
case 10101:{wherestring="where"+select5+"&&"+select3+"&&"+select1;break;}
case 10110:{wherestring="where"+select5+"&&"+select3+"&&"+select2;break;}
case 10111:{wherestring="where"+select5+"&&"+select3+"&&"+select1+"&&"+select2;break;}
case 11000:{wherestring="where"+select5+"&&"+select4;break;}
case 11001:{wherestring="where"+select5+"&&"+select4+"&&"+select1;break;}
case 11010:{wherestring="where"+select5+"&&"+select4+"&&"+select2;break;}
case 11011:{wherestring="where"+select5+"&&"+select4+"&&"+select2+"&&"+select1;break;}
case 11100:{wherestring="where"+select5+"&&"+select4+"&&"+select3;break;}
case 11101:{wherestring="where"+select5+"&&"+select4+"&&"+select3+"&&"+select1;break;}
case 11110:{wherestring="where"+select5+"&&"+select4+"&&"+select3+"&&"+select2;break;}
case 11111:{wherestring="where"+select5+"&&"+select4+"&&"+select3+"&&"+select2+"&&"+select1;break;}
}