有一个学校考试项目:多个科目,一个科目有多个题,一个题有多个小题.
科目:科目ID,科目名称
题:科目ID,题号,题名称
小题:科目ID,题号,小题号,小题名称,小题分数科目可以不用编辑,题和小题需要用界面来编辑.应该如何做这个控件?各个控件应该如何绑定?

解决方案 »

  1.   

    小题:题号,小题号,小题名称,小题分数
    编辑可使用gridview,repeater
    自定义实体类
    如Class A{public B b{get;set;}}
    Class B{}
      

  2.   

    Datalist
    Datalist或repeater科目ID,题号,小题号 置於外層Datalist
    小题名称,小题分数置於內層Datalist或repeater
      

  3.   

    很对不起. 我说的是winform项目. 具体如何绑定,希望可以说详细些,最好有代码
      

  4.   

    我用的数据源是带多表的DataSet.如果转换为实体对象能更方便编程的话,也可以考虑转换.
      

  5.   

    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")
      

  6.   

    界面布局可以这样:
    如果只是显示,你也可以将文本框修改为lable
      

  7.   

    多谢阿捷.我试用了你的方法,也试用了一些别的方法.现在用的方法是在科目和题的selectIndexChanged事件中设置datatable.defaultView.filter,不用在selectIndexChanged事件中重新取记录.并且摆放了二个datagridview.在dataset中设置了relation,但是却不起作用(不知relation是不是设置不正确?),还是要自己设置filter属性来达到目的.