winform用datagridview制作课程表实例

时间:2021-05-19

本文实例讲述了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; //好了。

希望本文所述对大家的C#程序设计有所帮助。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章