.NET下拉控件如何绑定同一个表里面的两列(学生和老师)

qq_28051245 2016-12-27 10:53:39
我想在 if (AccepterRole.ToString() == "全部")里面,全部可以绑定学生和老师的值,但是现在只能绑定学生的值,不知道怎么实现同时绑定这两个列,在下拉显示,我是过Select 用+连起来,但是有两个查询条件T_id和S_id,没有成功

protected void M_AccepterStudentBand()
{
this.AccepterRole = this.M_Accepter_Role.SelectedValue;
if (AccepterRole.ToString() == "全部")
{
sql = "Select S_name,S_id,T_id,T_name from S_Teacher Where T_id='" + Tid.ToString() + "'";
SqlDataReader dr = conn.ExecuteReader(sql);
this.M_Accepter.DataSource = dr;//设置数据源,用于填充控件中的项的值列表
this.M_Accepter.DataTextField = "S_name";//下拉显示出来的值
this.M_Accepter.DataValueField = "S_id";//取到的值
this.M_Accepter.DataBind();//将控件及其所有子控件绑定到指定的数据源
dr.Close();
}
else if (AccepterRole.ToString() == "导师")
{
sql = "Select T_id,T_name from S_Teacher Where S_id='" + id.ToString() + "'";
SqlDataReader dr = conn.ExecuteReader(sql);
this.M_Accepter.DataSource = dr;//设置数据源,用于填充控件中的项的值列表
this.M_Accepter.DataTextField = "T_name";//下拉显示出来的值
this.M_Accepter.DataValueField = "T_id";//取到的值
this.M_Accepter.DataBind();//将控件及其所有子控件绑定到指定的数据源
dr.Close();
}
else if (AccepterRole.ToString() == "学生")
{
sql = "Select S_name,S_id,T_id,T_name from S_Teacher Where T_id='" + Tid.ToString() + "'";
SqlDataReader dr = conn.ExecuteReader(sql);
this.M_Accepter.DataSource = dr;//设置数据源,用于填充控件中的项的值列表
this.M_Accepter.DataTextField = "S_name";//下拉显示出来的值
this.M_Accepter.DataValueField = "S_id";//取到的值
this.M_Accepter.DataBind();//将控件及其所有子控件绑定到指定的数据源
dr.Close();
}
else if (AccepterRole.ToString() == "队员")
{
sql = "Select * from S_Teacher Where S_id='" + id.ToString() + "'";
SqlDataReader dr = conn.ExecuteReader(sql);
if (dr.Read())
{
group = dr["S_group"].ToString();
}
dr.Close();
M_AccepterStudentTeamBand();
}
}
...全文
219 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 10 楼 qq_28051245 的回复:
[quote=引用 8 楼 Hello_Ge 的回复:] 学生列和老师列是不能在一个表中的,假如现在要关联家长,你是不是又要加一个家长列 学生列 老师列 家长列 一个人只能同时存在一种角色,表结构应该从纵向考虑,而不是横向 成数据库设计上来说,学生、老师都是一种角色,他们有不同的职责,所有要分开建表
这是因为学生选了这个指导导师,是学生对应这个老师,这是对应关系,现在是拿这个对应关系用来做信息发送,聊天的关系来着,我已经分来来建一个学生信息和导师信息表了,这是是对应关系[/quote] 看看数据库设计范式
yzf86211861 2016-12-29
  • 打赏
  • 举报
回复
上面基本都给出代码了
  • 打赏
  • 举报
回复
学生列和老师列是不能在一个表中的,假如现在要关联家长,你是不是又要加一个家长列 学生列 老师列 家长列 一个人只能同时存在一种角色,表结构应该从纵向考虑,而不是横向 成数据库设计上来说,学生、老师都是一种角色,他们有不同的职责,所有要分开建表
  • 打赏
  • 举报
回复
老师和学生放同一张表,Name表示名字,Type代表是老师还是学生就行了 Name Type 小明 学生 张老师 老师 只要绑定Name就能知道所有人名
花落_1 2016-12-29
  • 打赏
  • 举报
回复
我觉得你不要用 DataSource 绑定下拉框的值 你循环 dr .M_Accepter..Items.add(new listItem(学生ID+老师ID,学生+老师))
haoqie9465 2016-12-29
  • 打赏
  • 举报
回复
Select S_name,S_id,T_id,T_name from S_Teacher --教师的条件 union all Select S_name,S_id,T_id,T_name from S_Teacher --学生的条件
qq_28051245 2016-12-29
  • 打赏
  • 举报
回复
引用 5 楼 haoqie9465 的回复:
Select S_name,S_id,T_id,T_name from S_Teacher --教师的条件 union all Select S_name,S_id,T_id,T_name from S_Teacher --学生的条件
改成这样行了,把两列的值as成一个再绑定 sql = "Select S_id as ids,S_name as names from S_Teacher Where T_id='" + Tid.ToString() + "' union all Select T_id as ids,T_name as names from S_Teacher Where S_id='" + id.ToString() + "'"; SqlDataReader dr = conn.ExecuteReader(sql); this.M_Accepter.DataSource = dr;//设置数据源,用于填充控件中的项的值列表 this.M_Accepter.DataTextField = "names";//下拉显示出来的值 this.M_Accepter.DataValueField = "ids";//取到的值 this.M_Accepter.DataBind();//将控件及其所有子控件绑定到指定的数据源 dr.Close();
qq_28051245 2016-12-29
  • 打赏
  • 举报
回复
引用 8 楼 Hello_Ge 的回复:
学生列和老师列是不能在一个表中的,假如现在要关联家长,你是不是又要加一个家长列 学生列 老师列 家长列 一个人只能同时存在一种角色,表结构应该从纵向考虑,而不是横向 成数据库设计上来说,学生、老师都是一种角色,他们有不同的职责,所有要分开建表
这是因为学生选了这个指导导师,是学生对应这个老师,这是对应关系,现在是拿这个对应关系用来做信息发送,聊天的关系来着,我已经分来来建一个学生信息和导师信息表了,这是是对应关系
qq_28051245 2016-12-28
  • 打赏
  • 举报
回复
引用 3 楼 closurer 的回复:
提个意见,你把老师和学生都保存到 S_Teacher 表了。这样老师会不高兴的。 老师的饭堂跟学生都要分开,或者设个专窗,不用排队,这样才合理。 如果来不及改动,用 SQL 的 union all 语句随意拼凑一下吧。
大神,给出SQL语句代码看看啊,不会写这种联合的sql,之前用A+B输出的是AB不是我要的A B 下拉效果。只能用同一张表啊,因为是学生对应导师表,一个老师选了一个毕业指导老师,这个下拉是用来绑定学生和老师,用来发信息的,就是在绑定全部的时候出了问题
闭包客 2016-12-28
  • 打赏
  • 举报
回复
提个意见,你把老师和学生都保存到 S_Teacher 表了。这样老师会不高兴的。 老师的饭堂跟学生都要分开,或者设个专窗,不用排队,这样才合理。 如果来不及改动,用 SQL 的 union all 语句随意拼凑一下吧。
qq_28051245 2016-12-28
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
this.M_Accepter.DataSource 分别用不同的查询,一个where type=老师,一个=学生
能写出具体一点的代码码,我还是不太会
threenewbee 2016-12-27
  • 打赏
  • 举报
回复
this.M_Accepter.DataSource 分别用不同的查询,一个where type=老师,一个=学生
禅道项目管理软件6.2.stable版本于8月27日正式发布,该版本主要细节方面的调整。调整并优化测试流程,修复Bug,提高系统安全性。使用lazarus重构windows一键安装包的控制面板 。 修改记录 完成的功能: 1429 把ajaxform超时的时间拿出来作为参数。 481 增加是否需要打开审核流程的配置 1254 修改打包脚本,去掉内网服务器 984 命令行中的IN_SHELL常量改用PHP_SAPI 1322 dao类增加一个方法,可以允许用户直接执行一个sql。例如:$bugs = $this->dao->query('select * from zt_bug')->fetchAll(); 1173 维护权限的时候应该显示当前维护的分组 1422 删除用不到的js控件 357 dao增加count(*)的功能。 例如:$count = $this->dao->select('*')-from(TABLE_BUG)->where('status')->eq('normal')->count(); 1235 项目中新增需求时默认无需评审 1165 整理每个页面的标题和position 1207 发布关联bug的时候,不关联解决方案等于延期的bug 1371 项目的日志里面记录版本的创建时间和测试任务的提交,完成时间。 1436 快速跳转部分去掉圆角 808 任务增加暂停状态 1114 用例执行失败的时候,可以考虑分步骤提交bug。 1349 批量新增bug增加“同上”功能 1432 去掉发布和版本里面的“已关联bugs”中的复数s。 1055 查看组织日志/TODO时,横向滚动时,锁定前两列的部门及员工姓名。 1337 bug创建的时候增加优先级字段 1182 计划关联需求时增加按照模块搜索功能 1428 任务详情页面显示需求的描述。 981 调整各个对象编辑页面的标题文本框的排版 1395 添加动态中动作的中文支持 315 设定编辑器tabindex 1439 调整转入任务时项目列的算法 1217 关于录入工时更新任务的状态 1125 当需求,任务,bug的管理或者解决方案为重复的时候,增加搜索功能。 1369 重新梳理下邮件错误的提示。 1348 查看版本关联bug弹出的页面增加操作按钮 1193 项目转入bug作为任务的时候将延期的也放在列中 1431 调整各个新增页面的间距,将其缩小。 1262 在项目的下拉菜单中增加所有项目的链接 1324 使用lazarus重构windows一键安装包的控制面板 1175 搜索,计划应该按照日期倒序排 1424 产品页面提需求时如果不需要评审给用户提示评审人会变成指派人 1238 提需求时所属计划列倒序排序 1320 重置数据之后,应当提示用户结果 1169 需求的详情页显示项目 1210 集成环境首页的自动跳转去掉 1394 6.0版本更换主题后,指派列调整对比度,使用户更容易识别内容 1438 检查确认编辑器贴图功能是否正常 855 各个列页面增加不同状态颜色的显示 1124 重新实现dao里面的检查字符串长度的计算方式 1359 项目导入bug的时候,自动计算模块 1199 linux一键安装包的控制脚本初始化对xampp变量的设置 1434 调整产品各个操作的界面。 1347 一键安装包首页居中对齐。 1430 模块的编辑,无法编辑名称。 483 各个列页面默认不显示已经关闭的对象 1256 对单提交过来的字段进行specialchars处理。 1022 添加需求,任务,bug,文档的时候判断是否重复。 1237 任务记录工时的时候在zt_taskestimate中记录account属性的值 905 文档可以修改其所属的文档库 1167 邮件配置参数中过滤空格字符 1208 项目中bug列的优先级还是用图标来显示 1437 调整桌面提醒工具权限错误的提示 1358 计划列页面描述里面P标签的margin去掉。 1433 调整项目各个操作的界面。 1343 从用例创建bug的时候,可以选择步骤。 1057 重新梳理默认的权限列 1183 调整两个日期选择框同时存在情况下第二个的默认值 修复的BUG: 598 6.0测试任务中查看用例结果版本信息为空 608 bug导入任务后更新任务(或bug)的状态时页面没有跳转 610 维护项目文档库的模块时把产品的模块也复制过来了 611 燃尽图的delta功能失效 622 用例批量创建需求下拉菜单无内容 618 权限管理页面去掉Bug自定义 下载地址 一、禅道项目管理软件源码下载 下载站点1:http://sourceforge.net/projects/zentao/files/6.2/ZenTaoPMS.6.2.stable.zip/download 下载站点2:http://dl.zentao.net/6.2/ZenTaoPMS.6.2.stable.zip 二、集成运行环境下载:切勿下载下面的软件进行升级,仅适用于新安装 Windows一键安装包(适用于windows系列) 下载站点1:http://sourceforge.net/projects/zentao/files/6.2/ZenTaoPMS.6.2.stable.exe/download 下载站点2:http://dl.zentao.net/6.2/ZenTaoPMS.6.2.stable.exe Linux一键安装包 32位: 下载站点1:http://sourceforge.net/projects/zentao/files/6.2/ZenTaoPMS.6.2.stable.linux-32.7z/download 下载站点2:http://dl.zentao.net/6.2/ZenTaoPMS.6.2.stable.linux-32.7z 64位: 下载站点1:http://sourceforge.net/projects/zentao/files/6.2/ZenTaoPMS.6.2.stable.linux-64.7z/download 下载站点2:http://dl.zentao.net/6.2/ZenTaoPMS.6.2.stable.linux-64.7z 安装和升级文档 安装文档:http://www.zentao.net/book/zentaopmshelp/40.html 升级文档:http://www.zentao.net/book/zentaopmshelp/41.html

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧