有一表 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发生变化,谢谢
sql语句参照上面,至于换数据源,你可以用控件事先做好两个datasource,然后在按钮的click事件里给gridview指定数据源就行,gridview.datasource=sqldatasourceX;
对于你的第一个问题混淆了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属性,再执行绑定方法应该就行了吧。