首页 新闻 会员 周边 捐助

VS2008 gridview 查询的2个问题

0
悬赏园豆:20 [已解决问题] 解决于 2008-12-19 09:53

有一表 student

有学号,姓名2列

有textbox1,textbox2,button控件

3个参数 a,b,c;a,b为textbox1,textbox2 的控件返回值, 设c值为%

为什么select * from table where name like %@b%  不可以查询,而

select * from table where name like @c+@b%+@c  就可以呢

还有 select * from table where (name = @c+@b%+@c   OR num=@a  )  为什么不行(通过学号或名字查信息)

再加个问题,gridview 数据源为SqlDataSource1 ,有办法使点按钮1时数据源为SqlDataSource1,而点按钮2时数据源为SqlDataSource2吗?

或者 按不同按钮时  SqlDataSource 的SelectCommand发生变化,谢谢

真的很菜的主页 真的很菜 | 初学一级 | 园豆:20
提问于:2008-12-19 09:00
< >
分享
最佳答案
0

sql语句参照上面,至于换数据源,你可以用控件事先做好两个datasource,然后在按钮的click事件里给gridview指定数据源就行,gridview.datasource=sqldatasourceX;

有所为,有所不为 | 小虾三级 |园豆:1200 | 2008-12-19 09:30
其他回答(3)
0

如果两个DataSource的数据结构一样,为什么还要使用两个DataSource呢?
还有,你的sql语句有问题
select * from table where name like '%'+@b+'%'

码尔代夫iimax | 园豆:3138 (老鸟四级) | 2008-12-19 09:17
0

对于你的第一个问题混淆了SQL语句本身的字符和变量代表的字符的含义,%属于SQL系统中的通配符号。如果你想当成字符串处理可以使用exec('SQT语句字符串')

select * from table where name like %@b% 改为

select * from table where name like '%'+@b+'% '

至于select * from table where name like @c+@b%+@c 可以,select * from table where (name = @c+@b%+@c   OR num=@a  )不可以,我想是SQL分析器对其进行了分析的结果,可能即使可以的,结果集也不是你想要的。

 

对于第二个问题你直接在点击按钮的事件中更改gridview的datasource属性或者更改SqlDataSource1的SelectCommand属性,再执行绑定方法应该就行了吧。

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-19 09:34
0

我也很奇怪~~

select * from table where name like @c+@b%+@c  这个怎么能运行呢?~~

只有可能在这里sqlserver把%也当成一个操作符了吧。。。

BB_Coder | 园豆:797 (小虾三级) | 2008-12-19 11:05
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册