winform用datagridview制作课程表实例
作者:shichen2014 发布时间:2023-11-24 06:08:28
本文实例讲述了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#程序设计有所帮助。


猜你喜欢
- 缓存可以说是加速服务响应速度的一种非常有效并且简单的方式。在缓存领域,有很多知名的框架,如EhCache 、Guava、HazelCast等
- springboot用以进行web项目开发的便捷性,本文不再赘述,主要是想将工作中基于springboot与gradle的多模块项目的构建经
- C# 中同样支持多维数组(也可称为矩形数组),它可以是二维的,也可以是三维的,多维数组中的数据以类似表格(行、列)的形式存储,因此也被称为矩
- SpringBoot-JPA删除不成功,只执行了查询语句今天使用JPA自定义了一个删除方法deleteByUserIdAndCommentI
- 本文实例讲述了C#实现将窗体固定在显示器的左上角且不能移动的方法。分享给大家供大家参考。具体实现方法如下:using System;usin
- Android 6本文根据我个人的开发经验,总结了从 Android 6 - Android 13 重要的行为变更。当然,这不是 Andro
- 一、概要我们可以用java实现简单的登录界面。如上效果,直观但也需要一步一步来完成,从界面弹窗的设置,图片的插入,文本框的设置,到登录的按钮
- 构造http headerprivate static final String URL = "url";private
- 首先定义两个示例类ClassA,ClassB,用于后续的示例演示package cn.lzrabbit;public class Class
- 在本文中,我将向你展示c#编程的5个最佳实践。我从日常编程经验中学到了这些实践。我在release模式下测试了所有的代码,并在开发环境稳定后
- 首先我们应该知道线程安全问题一般发生在成员变量上,这是为什么啦?因为成员变量是存放在堆内存中,而堆内存又是线程共享的,这就造成了线程安全问题
- 具体详情如下所示:int -> Stringint i=12345;String s="";第一种方法:s=i+&
- 权限上篇文章 Android 获取IP和UA中提及了获取WIFI的IP地址,本篇文章介绍下如何扫描WIFI。官方文档根据官方文档描述,扫描W
- 一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方
- clone()和Cloneable接口clone顾名思义就是克隆,即,复制一个相等的对象,但是不同的引用地址。我们知道拿到一个对象的地址,只
- 基于 kotlin/coroutine/retrofit/jetpack 打造,100来行代码,用法超级简单舒适设置默认Retrofit工厂
- 一、Unity Shader基础1、创建和使用Shader在Unity中Shader一般由两种用途:指定给材质,用于物理渲染;指定给脚本,用
- 定义工具类-创建对应的日志对象定义枚举类-存储定义的日志文件名称logback.xml里配置对应的日志名称和日志等级1、工具类 Logger
- 页面拖动到最后一页 再向下滑动回复到 第一页,第一页向前滑动回到 最后一页同时,底部红色小圆点随着页面的滑动距离比例随时改变位置布局:<
- 前言标签(Label)控件是最常用的控件,在任何Windows应用程序中都可以中都可以看到标签控件。标签控件用于显示用户不能编辑的文件或图像