• winform用datagridview制作课程表


                                  课程表的最终效果

    具体方法如下: 

     1.首先定义一个datatable,并添加列集,行集。 一张课程表的表结构就出来了。(如上图表结构式4行8列)只有表有结构、有数据才可以绑到

       datagridivew控件里。否则绑上了,也没得显示。

       代码如下:

                int num , week ;                                                       // 周数节数,第二步的时候用得到。

                DataTable dt = new DataTable("subject");                           
                dt.Columns.Add("周数/节数", typeof(string));                           //添加列集,下面都是
                dt.Columns.Add("周一", typeof(string));
                dt.Columns.Add("周二", typeof(string));
                dt.Columns.Add("周三", typeof(string));
                dt.Columns.Add("周四", typeof(string));
                dt.Columns.Add("周五", typeof(string));
                dt.Columns.Add("周六", typeof(string));
                dt.Columns.Add("周日", typeof(string));
     
                for (int i = 0; i < 4; i++)                                                      //用循环添加4个行集~
                {
                    DataRow dr = dt.NewRow();
     
                    dt.Rows.Add(dr);
                }
     
                dt.Rows[0][0] = "第1节";                                                      //向第一行里的第一个格中添加一个“第1节”
                dt.Rows[1][0] = "第2节";                                                      //向第二行里的第一个格中添加一个“第
    2
    节”
                dt.Rows[2][0] = "第3节";                                                      //向第三行里的第一个格中添加一个“第3节”

                dt.Rows[3][0] = "第4节";                                                      //向第四行里的第一个格中添加一个“第4节”

                                                                     数据库的样式

                

      2. 做到上边表的结构就有了。接下来该向表中添加数据了。 我用的方法是在循环里拼凑 sql 语句。 向每一行的每一个单元格中添加数据。

     写一个嵌套的循环就可以了。

            代码如下:

                   for (int i = 0; i < 4; i++)                                                //一共有四行,在课程表里 i 应该表示的是节数。

                        { 
                          for (int j = 1; j < 8; j++)                                        //每行有7列需要添加数据,在课程表中,J 表示的应该是周数。
                             {
                              num = i + 1;                                                       
                              week = j;
                              string sql = "select subject ,teacher,room,weekstar_end from subject_table where num='" + num.ToString() + "' and week = '" +                                                          week.ToString() + "'";                                      //拼凑SQL语句。
                              SqlConnection conn = new SqlConnection ("连接字符串~~");    

                              conn.Open();                                                         

                              SqlCommand command = new SqlCommand(sql, conn);           
                              SqlDataReader reader = command.ExecuteReader();
                              while (reader.Read())
                              {
                                 sum = reader.GetValue(0).ToString() + "\n" + reader.GetValue(1).ToString() + "\n" + reader.GetValue(2).ToString() + "\n" + reader.GetValue(3).ToString();                                                                        

                               //如上图,一个格子里头有好几个信息。比如教师,教室,课程名。这里把从数据库中取出的数据拼在一起。放在变量SUM里。 

                                 dt.Rows[i][j] = sum;                  //把Sum 添加到datatable的小格子里。
                              }
                           conn.Close();                                  //关闭数据库连接。
                              }
                      } 

    3.最后一步,把整好的datatable添加到datagridview里。万事大吉了。 

     代码如下: 

                      this.DataGridView.DataSource = dt;           //好了。

    作者:大黑兔
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    Atitit  Uncaught (in promise) SyntaxError Unexpected token < in JSON at position 0
    Atitit  验证 数字验证 非空验证的最佳算法  h5
    Atitit 转移特效attilax总结
    Atitit Loading 动画效果
    Atitit 项目管理 提升开发效率的项目流程方法模型 哑铃型  橄榄型 直板型
    Atitit hibernate3 hinernate4 hibernate5新特性attilax总结
    Atitit js es5 es6新特性 attilax总结
    Atitit mybatis 3 3.2 3.3  3.4 新特性attilax总结
    Atitit spring 3.0 3.1 3.2 4.0 4.3 5.0 新特性
    Atitit jquery  1.4--v1.11  v1.12  v2.0  3.0 的新特性
  • 原文地址:https://www.cnblogs.com/mcad/p/datagridview.html
Copyright © 2020-2023  润新知