日期:2014-05-17  浏览次数:20657 次

怎样动态控制SqlDataSource?请前辈指导!小弟先感谢了!
本帖最后由 salecn 于 2012-10-28 11:22:35 编辑
环境:vs2010+c#+GridView+SqlDataSource,拖拽了1个GridView;又拖拽了1个Sqldatasource不断点下一步建数据源为(SELECT [考生号], [学号], [性别], [民族], [政治面貌], [出生日期], [学校], [学院], [专业], [班级], [Id] FROM [xsmd])。

目的:登录的管理人员是哪个学院的,就只显示本学院的数据,然后进行编辑、修改。如:A学院登录人员就只能看到A学院的数据,B学院登录人员就只能看到B学院数据.......

问题:想动态控制数据源。如:管理人员登录系统后,学院的变量是“xy”,就只显示  select * from xsmd where 学院=xy  的数据。


开发的截图如下:

------解决方案--------------------
<SelectParameters>
<asp:SessionParameter Name="userid" SessionField="userid" />
</SelectParameters>
设置SelectCommand
------解决方案--------------------
登录后重新设置SqlDataSource的selectcommand

比如SqlDataSource的id是SqlDataSource1:
this.SqlDataSource1.SelectCommand="新的sql语句";
------解决方案--------------------
你这么做的程序 有意义吗, 懒的连 代码都 不写,如果去公司工作,没有人会用你的, 。


直接 给 DataSource 指定 CommandText。 就OK了, 
------解决方案--------------------
随便搜一下:

http://www.cnblogs.com/luforever/articles/575953.html
http://eddie005.cnblogs.com/archive/2006/06/26/DeclarativeParameters.html
------解决方案--------------------
http://technet.microsoft.com/zh-cn/system.web.ui.webcontrols.sqldatasourceview.selectparameters
------解决方案--------------------
这没什么值得关注的地方  LZ只需要了解一下后置代码是如何绑定数据源的就可以  用拖拉拽 是实现不了的

后置代码 根据登陆传入的request.QuestString 参数 替换数据数据库语句  在page_load时间中根据数据库语句再进行数据绑定就可以了
------解决方案--------------------
写应用软件的话,不是关键而且复杂的代码,建议是越简单的技术越好。
------解决方案--------------------
引用:
很感谢楼上前辈了!这么快的回复,比培训班还好,我要仔细消化下,以不辜负前辈的指导!

另外,现请教下,点击编辑按钮后,怎样让  学院  字段变在下拉框(A学院,B学院......)啊?


添加模版列,编辑模版列的EditTemplate,在里面拖一个DropdownList并绑定数据。