日期:2014-05-17  浏览次数:20467 次

SQL多条件查询控制

如图,下拉框都是相同的,有三个选项:单位工程,移交单位,移交人分别对应数据库中的Name,Yjdw,Yjr字段,该如何实现3个3个textbox中填了几个就实现现几个条件的查询(同时满足下拉框选择的)。单纯的if肯定是会非常麻烦的,求个简便点的方法,谢谢!

------解决方案--------------------
C# code

string strsql = "select * from tbName where 1=1";
if(txtBox1.Text!="")   strsql+= " and Name='"+txtBox1.Text+"'";
if(txtBox2.Text!="")   strsql+= " and Yhdw='"+txtBox2.Text+"'";
if(txtBox3.Text!="")   strsql+= " and Yjr='"+txtBox3.Text+"'";

------解决方案--------------------
就是 if 判断
stringBuilder 拼接 条件 字符串
------解决方案--------------------
string sql = "select * from MorningGroup";
if (!String.IsNullOrEmpty(where))
{
sql += " where " + where;
}
if(txtBox1.Text!="") strsql+= " and Name='"+txtBox1.Text+"'";
if(txtBox2.Text!="") strsql+= " and Yhdw='"+txtBox2.Text+"'";
if(txtBox3.Text!="") strsql+= " and Yjr='"+txtBox3.Text+"'";


------解决方案--------------------
模糊查询改成 " and Name like '" +txtBox1.Text+ "%'" 就可以了。
1=1 是一个永真的表达式,这么写是为了确保where已经在字符串内,不会重复添加。不然要进行3个条件的查询时,就会出现3个where了。
------解决方案--------------------
条件查询偶最近研究了不少,上面所说虽然靠近,但还不是答案。他们只注意到了where条件句等号后面是变量,没注意等号前面也是变量。你在做查询语句拼接的时候也让等号前面的值等于dropdownlist.selectedvalue就可以了。上面所说的拼接方法是切实可行的七楼已经补充得好了,不过也许你还不知道where 1=1的意义何在:如果if语句三个都不符合,那选择语句就没有where语句,如果有符合,那就有,为了让where语句总是有且无语法错误,就需要1=1.
------解决方案--------------------
还可以这样
C# code
string strsql= "select * from MorningGroup where 1=1 ";
strsql += (txtBox1.Text==""?"": " and Name like '%"+txtBox1.Text+"%'");
strsql += (txtBox2.Text==""?"": " and Yhdw like '%"+txtBox2.Text+"%'");
strsql += (txtBox3.Text==""?"": " and Yjr like '%"+txtBox3.Text+"%'");

------解决方案--------------------
拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,拼接是不安全的,
------解决方案--------------------
首先要判断下拉框选择项,然后根据选择象和文本框的值来进行组装sql