某“学期”数据表有如下字段:
- 学期id
- 学年的第一年(例如2012-2013学年,就存储2012)
- 上学期还是下学期(上学期存储1,下学期存储2)另一个“课程安排”数据表有如下字段:
- 安排id
- 学期id(外键)
- 课程id(外键)
- 开始时间第二个表用DataGridView显示和编辑。其中,“学期id”需要使用一个组合框来选择第一个表中已经存在的学期记录。为了容易辨别,组合框的内容需要来自“学期”数据表中的两个字段,还要加工处理以后再显示。例如,当“学期”数据表的某个记录是“5,2012,1”时候,组合框显示的文字应该是“2012-2013第1学期”在数据绑定下,这个功能如何实现?

解决方案 »

  1.   

    这个可以在sql语句里面修改,或者在查询到数据以后,整合table为你要的列样式,然后再给DataGridView绑定
      

  2.   

    可以说详细些吗?第一个方法,我几乎没用什么sql语句,因为这块不熟。我直接绑定的。后一个方法是什么步骤?
      

  3.   


    DataTable dt = GetData();//GetData为从数据库中获取数据的方法            DataTable dt1 = new DataTable();//dt1为整理后得到的table,也是Gridview的DataSource
                dt1.Columns.Add("Combobox");//combobox那一列的列名
                dt1.Rows.Add(dt.Rows[0]["学年的第一年字段"].ToString() + "-" + Convert.ToInt32(dt.Rows[0]["学年的第一年字段"].ToString()) + 1 + "第" + dt.Rows[0]["学期字段"].ToString()+"学期");大致就是这么个思路,具体根据你的要求再稍微修改一下
      

  4.   


    这个方法看起来挺巧妙,不过还有几个不懂的地方:
    1. dt1.Rows.Add不需要循环添加所有的行吗?
    2. dt1的内容是从dt复制来的,那么数据绑定会不会生效?