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

后台多条件查询问题(紧急)

雪雨星风 发布于 2008-08-04 10:56, 1878 次点击
我有个问题想请教大家


有这样一个后台管理系统    用gridview从数据库中读出来了8类信息(也就是8个字段)
想通过一个查询对这8类信息分别进行查询  并且这8类信息随意组合也能查出相应的信息

比如
查出的信息如下
姓名  年龄  性别  学校     班级   生日   所在省   所在市
 a        12     男      23     一班     6.2      北京      北京
为了方便  我用了8个checkbox分别代表这8个字段   我选中那个checkbox就显示相应的文本框用来输入查询条件

这样子的话也可以达到目的   各个查询条件相对独立  可以随意组合进行查询
但是需要判断70多次   很麻烦   请各位高手指点一下
16 回复
#2
雪雨星风2008-08-04 10:57
帮下忙  小弟不胜感激
#3
雪雨星风2008-08-04 10:58
觉得我哪点没说明白 或你没看明白 请当面指出
#4
雪雨星风2008-08-04 11:13
真的超级紧急    有好方法的人看一眼  提示一下也行啊
#5
师妃暄2008-08-04 11:50
我知道你的意思,你是想多条件符合查询。也想单一条件查询是吗?

这样的话,你的想法错了
#6
雪雨星风2008-08-04 12:10
怎么了   这种效果实现不了吗
#7
师妃暄2008-08-04 12:55
where 字段1 like "%"+条件1+"%" AND 字段2 like "%"+条件2+"%"........

为空的条件就让他为空

一条语句就搞定了,不需要什么checkbox
#8
雪雨星风2008-08-04 15:10
太感谢你了  我怎么那么笨啊 加我QQ好吗
308329547
308329547
308329547
308329547
308329547
#9
cyyu_ryh2008-08-04 16:52

where 1=1
if(字段名!=null)
{
 and 字段名 = ''
}
if(字段名2!=null)
{
 and 字段名2 = ''
}
以下类同
.
.
.
#10
c_henry2008-08-04 17:46
楼上说的可以的,拼SQL语句
#11
雪雨星风2008-08-05 08:23
select * from biao where one like '%"+textbox1+"%' and two like '%"+textbox2+"%' and ……
#12
cyyu_ryh2008-08-05 11:27
这样不好
如果有一个不输入或者不选择
就无法查询出数据
#13
雪雨星风2008-08-05 12:05
可以查询出来的
#14
c_henry2008-08-05 12:17
也可以写成:
select * from biao where (textbox1.text='' or one like '%"+textbox1.text+"%') and (textbox2.text='' or two like '%"+textbox2+"%')...
这样子就能实现不输入就不检查该条件,数据就检查该条件
#15
bygg2008-08-05 12:41
用where 1=1
and ...
and ...
这样的方法最好.
#16
tidyboy12212008-08-05 14:41
我觉得把这种组合查询条件的任务交给程序比较好,不要让数据库太累。
#17
lxd8242008-08-05 15:55
上网搜多条件查询,一大把啊!
public static string GetSearchString(string testTime,string taste,string oversight,string area,string city,string place)
    {
        string SELECT_STRING = "select Project.*,[Plan].Taste,tb_city.city as sCity,tb_venues.Venues as sPlace from Project,[Plan],tb_city,tb_venues,tb_area where " +
                                 "1=1 ";
        if (testTime != "")
            SELECT_STRING += " and BeginDate='" + testTime + "'";
        if (taste != "")
            SELECT_STRING+=" and Taste like '%"+taste+"%'";
        if (oversight != "")
            SELECT_STRING += " and OverSight='" + oversight + "'";
        if (area != "")
            SELECT_STRING += " and Project.Place in (select VID from tb_city,tb_area,tb_venues where tb_area.AID=tb_City.AID and tb_city.CID=tb_venues.CID and Area='"+area+"')";
      
        if (city != "")
            SELECT_STRING += " and tb_city.City='" + city + "'";
        if (place != "")
            SELECT_STRING += " and tb_venues.Venues like '%" + place + "%'";

        return SELECT_STRING;
    }
1