| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3628 人关注过本帖
标题:哪位了解ASP.Net的控件SqlDataSource,其中的Filter功能使用时候有些问题
只看楼主 加入收藏
hysoka
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-8-18
收藏
得分:0 
以下是引用bygg在2010-8-19 17:50:38的发言:

SqlDataSource有个bool属性CancelSelectOnNullParameter:如果设为True,在执行Select时,任意一个查询条件参数值为Null时跳过整个Where子句;

我就在找这样的属性,没找到,呵呵.
学无止境啊……

在sql中,*代表任何字符,嘿嘿。

“在sql中,*代表任何字符,嘿嘿。”

这么说是不确切的,*可以代表查询表达式中的所有字段列;可是无法用在where子句中做条件表达,可以Sql Server中验证条件子句形如a1=* / a1='*' / a1 like '*' 均不能体现a1匹配任意字符串作用,要么出错要么仅匹配字段值为‘*’的记录;而是该用a1 like '%';事实上在sql中较常用的是 _ 通配 任意一个字符, % 通配任意长度字符串;说了这么多可是版主给的默认值设为*的解决办法很有效,所以我百思不得其解,*在这里面起到什么作用?

有事要离开了,今晚不能上网,盼你的回复,明天再看

[ 本帖最后由 hysoka 于 2010-8-20 09:10 编辑 ]
2010-08-19 18:18
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
条件里,它就是任意字符.

飘过~~
2010-08-19 20:35
hysoka
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-8-18
收藏
得分:0 
那你是否在Sql查询中验证过?是在什么环境下呢?
至少我所说的情况可以放到sql server中去验证,而且我接触数据库管理也有几年了,确实没听说过*可以用在条件判断里的。不如给我个Sql语句的例子让我也试试
2010-08-20 08:26
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
回复 23楼 hysoka
你没用到过,只能说你没有过这方面的需求,我也没这么写过sql语句,但是用*是没问题的,呵呵

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-08-20 09:01
hysoka
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2010-8-18
收藏
得分:0 
回复 24楼 冰镇柠檬汁儿
这话有点开玩笑了,我也可以保证,用*肯定不行。俗话说,没有实践就没有发言权~

不过话说回来,刚刚想到了一个情况,是不是两位版主对Access比较熟而平时几乎不用SqlServer呢。在Access中,作为MS的私生子,刻意没有使用标准的“SQL-92”而是为了兼容VBA使用“*”代替“%”来做字符串通配符。不过很遗憾地说,这并不是标准SQL

顺便再多说一句,在提供对ACEESS数据库支持时,为了兼容SQL标准,特意将“%”收录进来,内部再转义为“*”

[ 本帖最后由 hysoka 于 2010-8-20 09:17 编辑 ]
2010-08-20 09:16
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
*应该在SqlDataSource中的like中可以代表任意字符.而在sql中,不是,呵呵.上面说错了.我也验证过了.
非常感谢hysoka的纠正,呵呵。是我的大意。

飘过~~
2010-08-20 09:20
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
我也错了,对不起了,只是太习惯于程序的代码了。
你写like的那部分,不是有%吗,这样的话,默认值是空就可以了,这样%就代表任意长度的任意字符串,写两个也没关系的,而没有%的那个条件,默认值就设置成一个%应该就可以了
再次向楼主致歉

[ 本帖最后由 冰镇柠檬汁儿 于 2010-8-20 09:38 编辑 ]

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-08-20 09:32
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
这回保证可以了,因为我以前在SQL Server和Oracle里都这么用过

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-08-20 09:34
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
呵呵,看来有时候直觉是会出问题的。
以后认真些就好了。
这个帖子,不也让我们补充了一下以前的东西吗?

飘过~~
2010-08-20 09:47
冰镇柠檬汁儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:北京
等 级:版主
威 望:120
帖 子:8078
专家分:6657
注 册:2005-11-7
收藏
得分:0 
这回可丢人现眼啦

本来无一物,何处惹尘埃
It is empty at all here, Why pm 2.5 is so TMD high!
2010-08-20 09:52
快速回复:哪位了解ASP.Net的控件SqlDataSource,其中的Filter功能使用时候有些问 ...
数据加载中...
 
   



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

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