标题:问个关于gridview+sqldatasource的问题, 折磨偶二个月了
只看楼主
namida
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-29
 问题点数:0 回复次数:3 
问个关于gridview+sqldatasource的问题, 折磨偶二个月了

小弟要做个 简单的数据库.能实现多条件模糊查询.
用sql server数据库.vs2005.net asp.net 2.0

表名people,项 name, male, address, public,phone等五项.
表的内容为 :张三,男,北京市西城区,电信局,83846598

采用了两个页面一个 query.aspx 一个result.aspx.
query.aspx用来输入查询条件,基本上就 5个查询条件.用request.querystring将这五个 条件传递到 result.aspx页面.说明,五个输入的条件 只要全不为空就可以了。

result.aspx页面上 gridview 绑盯一个sqldatasoruce数据源.

配置数据源sqldatasource的 sql语句如下:

select * from people where(@name is null or name=@name) and(@address is null or address=@address) and (@male is null or male=@male) and (@public is null or public=@public)
and (@phone is null or phone=@phone)

输入查询条件 张三,男 gridview上查不到任何结果,并且输入任何一个条件查询都得不到结果,改用存储过程仍然是得不到查询结果.但是用查询分析器却可以查出结果来为什么????

如果将上述语句改为select * from people where @name=name或者其中任意一个,都可以查出结果来,为什么?

百思不得其解,为什么? 哪位大虾指点下,或者在自己机器上实践下,表可以只建立 两个项试试看.

搜索更多相关主题的帖子: gridview 折磨 
2006-11-29 17:50
longlongjiaz
Rank: 1
等 级:新手上路
帖 子:64
专家分:0
注 册:2006-11-11
得分:0 

我也遇到这个问题?期待。。。。


2006-11-29 19:14
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
得分:0 
把你的判断单独提出来进行判断,再进行查询.
如:
string sqlstr = select * from people where 1=1;
if(Name != "") //Name是上个页面传过来的值
{
sqlstr += " and name='" + Name + "'"
}
.....

飘过~~
2006-11-29 20:00
wyg4859
Rank: 2
等 级:新手上路
威 望:4
帖 子:883
专家分:0
注 册:2006-8-2
得分:0 
当然不行了,你如果写成select * from people where(@name is null) and(@address is null) and (@male is null) and (@public is null) and (@phone is null)能查出东西吗?你是应该先判断的!

http://www.找到组织!找到党!
2006-11-29 21:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-106155-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085109 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved