在好例子网,分享、交流、成长!
您当前所在位置:首页C# 开发实例C#数据库操作 → C# 教务管理信息系统(源码+数据库)

C# 教务管理信息系统(源码+数据库)

C#数据库操作

下载此实例
  • 开发语言:C#
  • 实例大小:35.14M
  • 下载次数:36
  • 浏览次数:212
  • 发布时间:2021-01-19
  • 实例类别:C#数据库操作
  • 发 布 人:verydeng
  • 所需积分:5

实例介绍

【实例简介】


本系统为学校的选课工作提供一个简便有序的管理平台,使选课排课管理工作规范化,系统化,程序化,提高数据处理速度和准确度,减轻管理人员的工作量。帮助学生在选课系统开放时,不受地点限制完成选修课的申请。


【实例截图】

from clipboard

from clipboardfrom clipboardfrom clipboard

from clipboardfrom clipboardfrom clipboardfrom clipboard


from clipboard

【核心代码】


添加选课记录核心算法:

private void simpleButtonAddNewCourse_Click(object sender, EventArgs e)//点击添加选课记录按钮

        {

            /*获取当前选中记录的课程号*/

            int selectedHandle = this.gridView2.GetSelectedRows()[0]; //selectedHandle:当前选中的记录

            string Cnum = this.gridView2.GetRowCellValue(selectedHandle, "Cnum").ToString(); //Cnum:课程号

           

            //首先判断是否已经选了这门课

            /*获取当前选中的课程名*/

            string Cname = this.gridView2.GetRowCellValue(selectedHandle, "Cname").ToString(); //Cname:课程名

            /*在当前同学已选的课程中查询是否有这门课*/

            string sql = "select Cname from Course, SC where  SC.Cnum = Course.Cnum and SC.Snum = '" Sno "'and Course.Cname =  '" Cname "';";

            DataSet dataSet1 = GetData(sql);

            string conflict = ""; //定义一个变量用于标识是否存在冲突

            foreach (DataRow dataRow in dataSet1.Tables[0].Rows)

            {

                conflict = conflict dataRow["Cname"].ToString(); //如果已经选了这门课,就令conflict非空

            }

            if (conflict != "")//conflict非空代表存在冲突,退出执行

            {

                MessageBox.Show("已选择过此课程!请选择其他课程!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);

                return;

            }

            /*其次判断当前课程是否与其他课程有冲突*/

            /*对本条课程安排的上课计划与该同学已经选过的课的上课计划做交集,如果交集不为空,即存在冲突*/

            sql = "(select Weeknum,Weekday,Lessontime from CourseSchedule where Cnum = '" Cno "' ) InterSect (select Weeknum, Weekday, Lessontime from Course, SC, CourseSchedule where SC.Cnum = CourseSchedule.Cnum and SC.Cnum = Course.Cnum and SC.Snum = '" Snum "')";

            DataSet dataSet = GetData(sql);

            conflict = "";

            foreach (DataRow dataRow in dataSet.Tables[0].Rows)//如果交集不为空,就令将冲突信息赋给conflict

            {

                conflict = conflict "第" dataRow["Weeknum"].ToString() "周星期" dataRow["Weekday"].ToString() "第" dataRow["Lessontime"].ToString() "节课\n";//成功获取已选人数

            }

            /*存在冲突就退出执行,并提示冲突信息*/

            if (conflict != "")

            {

                MessageBox.Show("当前选中课程和 " conflict " 的课程有冲突!请选择其他课程!","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);

                return;

            }

            /**没有冲突,继续执行*/

            /*获取当前课程已选人数*/

            sql = "select Cselsectednum from Course where Cnum='" Cnum "'";

            dataSet = GetData(sql);

            string Cselsectednum = "",Cload="";//Cselsectednum:当前已选人数,Cmax:当前课程容量

            foreach (DataRow dataRow in dataSet.Tables[0].Rows)

            {

                Cselsectednum = dataRow["Cselsectednum"].ToString();//成功获取已选人数

            }

            sql = "select Cmax from Course where Cnum='" Cnum "'";

            dataSet = GetData(sql);

            foreach (DataRow dataRow in dataSet.Tables[0].Rows)

            {

                Cload = dataRow["Cmax"].ToString();//成功获取课程容量

            }

                      

            int num = int.Parse(Cselected); //将字符串类型的已选人数和课程容量转换为整型

            int max = int.Parse(Cload);

            //如果已选等于容量,即课程已被选满,即提示信息并退出执行

            if (num >= max)

            {

                MessageBox.Show("当前课程容量已满,请刷新!");

                return;

            }

            else//如果没选满

            {

                num ; //num值加一,表示该同学选课,之后将用于对课程表中该课程的已选人数属性进行更新

                Cselsectednum = num.ToString(); //将更新后的已选人数保存为字符串型,用于之后向学生选课表中插入数据

                /*向学生选课表中插入该条记录,更新课程表中该课程的已选人数*/

                sql = "insert into SC(Cnum,Snum) values('" Cno "','" Sno "');update Course set Cselsectednum='" Cselsectednum "' where Cnum='" Cno "';";

                try

                {

                    string con = "";//con为连接数据库的字符,sql为SQL查询语句

                    con = "Data Source=VERYDENG;Initial Catalog=UniversityDB;Integrated Security=True";

                    SqlConnection mycon = new SqlConnection(con);//连接数据库

                    mycon.Open();//打开数据库

                    SqlCommand sqlCommand = new SqlCommand(sql, mycon);

                    sqlCommand.ExecuteNonQuery();//执行这条sql命令

                    mycon.Close();//关闭数据库

                }

                catch (Exception)

                {

                    throw;

                }

                /*刷新选课列表和已选课列表*/

                InitCourseAble();

                IninCourseSelected();

            }

        }


实例下载地址

C# 教务管理信息系统(源码+数据库)

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

第 1 楼 peter20339 发表于: 2021-01-31 20:12 59
怎么打开

支持(0) 盖楼(回复)

发表评论

(您的评论需要经过审核才能显示)

查看所有1条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
;
报警