多重一对多关系的界面设计问题 有一个学校考试项目:多个科目,一个科目有多个题,一个题有多个小题.科目:科目ID,科目名称题:科目ID,题号,题名称小题:科目ID,题号,小题号,小题名称,小题分数科目可以不用编辑,题和小题需要用界面来编辑.应该如何做这个控件?各个控件应该如何绑定? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 小题:题号,小题号,小题名称,小题分数编辑可使用gridview,repeater自定义实体类如Class A{public B b{get;set;}}Class B{} DatalistDatalist或repeater科目ID,题号,小题号 置於外層Datalist小题名称,小题分数置於內層Datalist或repeater 很对不起. 我说的是winform项目. 具体如何绑定,希望可以说详细些,最好有代码 我用的数据源是带多表的DataSet.如果转换为实体对象能更方便编程的话,也可以考虑转换. Winform的界面可以这么设计科目:科目ID,科目名称题:科目ID,题号,题名称小题:科目ID,题号,小题号,小题名称,小题分数1、一个combobox读取所有的科目信息:科目名称和科目id,填充到下拉框中用数据源绑定SqlConnection sqlConn=new SqlConnection("你的数据库连接字符串");SqlDataAdapter sqlDa=new SqlDataAdapter("Select 科目ID,科目名称 From 科目",sqlConn);DataSet ds=new DataSet();sqlDa.Fill(ds,"科目");comboBox1.DataSource=sqlDs.Tables["科目"];comboBox1.DisplayMember="科目名称";comboBox1.ValueMember="科目ID"; //这样选中某个下来值后,comboBox1.Text就是对应的科目ID!2、处理comboBox1的SelectedChanged时间,当选择一个科目ID后,去后台数据库用这个科目ID,插叙所有的题目出来。将查询出来的:Select 题号,题名称 from 题 where 科目ID=comboBox1.Text;用同样的方法绑定数据到下拉框comboBox2中3、当选择一个具体的题目时,用comboBox1.Text(科目ID)和comboBox2.Text(题号)作为条件查询小题查询出来的数据,可以根据需要用textBox绑定,例如查询的数据放在表dt中。则科目TextBox.DataBingdings.Add("Text",dt,"科目ID") 界面布局可以这样:如果只是显示,你也可以将文本框修改为lable 多谢阿捷.我试用了你的方法,也试用了一些别的方法.现在用的方法是在科目和题的selectIndexChanged事件中设置datatable.defaultView.filter,不用在selectIndexChanged事件中重新取记录.并且摆放了二个datagridview.在dataset中设置了relation,但是却不起作用(不知relation是不是设置不正确?),还是要自己设置filter属性来达到目的. |ZYCWPF| Interaction.Triggers 触发后台属性更新后台属性时报错的总题,有示例 c#VS2008打包发布程序并带有程序所用的数据库怎么整 绑定DataGridView问题(在线等) c#串口发送数据 怎么改变应用程序默认的图标? 使用一个Func对象,编译错误了,帮忙纠正一下! 如何在picturebox上写入文字 求助调用webservice错误~~~~~~ 有关TreeView中节点的问题 第三方的net库实例化后相关类无法引用 C#不用控件导出Excel讨论,如何设置批注问题? datatable验证问题,求救!
编辑可使用gridview,repeater
自定义实体类
如Class A{public B b{get;set;}}
Class B{}
Datalist或repeater科目ID,题号,小题号 置於外層Datalist
小题名称,小题分数置於內層Datalist或repeater
科目:科目ID,科目名称
题:科目ID,题号,题名称
小题:科目ID,题号,小题号,小题名称,小题分数
1、一个combobox读取所有的科目信息:科目名称和科目id,填充到下拉框中
用数据源绑定SqlConnection sqlConn=new SqlConnection("你的数据库连接字符串");
SqlDataAdapter sqlDa=new SqlDataAdapter("Select 科目ID,科目名称 From 科目",sqlConn);
DataSet ds=new DataSet();
sqlDa.Fill(ds,"科目");comboBox1.DataSource=sqlDs.Tables["科目"];
comboBox1.DisplayMember="科目名称";
comboBox1.ValueMember="科目ID"; //这样选中某个下来值后,comboBox1.Text就是对应的科目ID!
2、处理comboBox1的SelectedChanged时间,当选择一个科目ID后,去后台数据库用这个科目ID,插叙所有的题目出来。
将查询出来的:
Select 题号,题名称 from 题 where 科目ID=comboBox1.Text;用同样的方法绑定数据到下拉框comboBox2中3、当选择一个具体的题目时,用comboBox1.Text(科目ID)和comboBox2.Text(题号)作为条件查询小题
查询出来的数据,可以根据需要用textBox绑定,例如查询的数据放在表dt中。则
科目TextBox.DataBingdings.Add("Text",dt,"科目ID")
如果只是显示,你也可以将文本框修改为lable