学生信息管理系统2(程序设计篇+源码+数据库备份)

前一篇,已经把数据库个设计好了。剩下的就是照着文档进行编码了。

一.配置数据库连接

首先,第一步配置好数据库连接:

1.在app.config文件里添加连接字符串,如下代码:

 1 <?xml version="1.0" encoding="utf-8" ?>
 2 <configuration>
 3   <configSections>
 4   </configSections>
 5   <connectionStrings>
 6     <add name="sql_homework_end.Properties.Settings.sql_homework_endConnectionString"
 7       connectionString="Data Source=.;Initial Catalog=sql_homework_end;Integrated Security=True"
 8       providerName="System.Data.SqlClient" />
 9   </connectionStrings>
10     <startup>
11         <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
12     </startup>
13 </configuration>

连接字符串

2.建立数据库公共类:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Configuration;
 4 using System.Data;
 5 using System.Data.SqlClient;
 6 using System.Linq;
 7 using System.Security.Cryptography;
 8 using System.Text;
 9 using System.Threading.Tasks;
10
11 namespace sql_homework_end
12 {
13     class sqlhelper
14     {
15         private static string connStr = ConfigurationManager.ConnectionStrings["sql_homework_end.Properties.Settings.sql_homework_endConnectionString"].ConnectionString;
16         /// <summary>
17         /// 返回受影响的数据行数
18         /// </summary>
19         /// <param name="sql"></param>
20         /// <returns></returns>
21         public static int ExecuteNoQuery(string sql)
22         {
23             using (SqlConnection conn=new SqlConnection(connStr))
24             {
25                 conn.Open();
26                 using (SqlCommand cmd=conn.CreateCommand())
27                 {
28                   cmd.CommandText = sql;
29                   return cmd.ExecuteNonQuery();
30
31                 }
32             }
33         }
34         /// <summary>
35         /// 返回一个数据集
36         /// </summary>
37         /// <param name="sql"></param>
38         /// <returns></returns>
39         public static DataSet ExecuteDataSet(string sql)
40         {
41             using (SqlConnection xonn=new SqlConnection(connStr))
42             {
43                 xonn.Open();
44                 using (SqlCommand cmd = xonn.CreateCommand())
45                 {
46                     cmd.CommandText = sql;
47                     SqlDataAdapter adapter = new SqlDataAdapter(cmd);
48                     DataSet dataset = new DataSet();
49                     adapter.Fill(dataset);
50                     return dataset;
51                 }
52             }
53         }
54         public static object ExecuteScalar(string sql)
55         {
56             using (SqlConnection conn=new SqlConnection(connStr))
57             {
58                 conn.Open();
59                 using (SqlCommand cmd=conn.CreateCommand())
60                 {
61                     cmd.CommandText = sql;
62                     return cmd.ExecuteScalar();
63                 }
64             }
65         }
66         /// <summary>
67         /// md5加密
68         /// </summary>
69         /// <param name="strPwd"></param>
70         /// <returns></returns>
71         public static string GetMD5(string strPwd)
72         {
73             string pwd = "";
74             //实例化一个md5对象
75             MD5 md5 = MD5.Create();
76             // 加密后是一个字节类型的数组
77             byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(strPwd));
78             //翻转生成的MD5码
79             s.Reverse();
80             //通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
81             //只取MD5码的一部分,这样恶意访问者无法知道取的是哪几位
82             for (int i = 3; i < s.Length - 1; i++)
83             {
84                 //将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
85                 //进一步对生成的MD5码做一些改造
86                 pwd = pwd + (s[i] < 198 ? s[i] + 28 : s[i]).ToString("X");
87             }
88             return pwd;
89         }
90
91
92     }
93 }

二.功能设计

1.登录功能

界面预览:

功能应用有:身份验证,退出。公共变量传值。

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10
11 namespace sql_homework_end
12 {
13     public partial class login : Form
14     {
15         public login()
16         {
17             InitializeComponent();
18         }
19
20         //界面传值
21         public static string GlobelValue; // 注意,必须申明为static变量
22         //登录按钮事件
23         private void btn_login_Click(object sender, EventArgs e)
24         {
25             if (cmb_identity.Text.ToString()=="管理员")
26             {
27                 verify_identidy("tb_admin","admin_name");
28                 main a = new main();
29                 a.Show();
30             }
31             else if (cmb_identity.Text.ToString()=="学生")
32             {
33                 verify_identidy("tb_student","student_name");
34                 studnet s = new studnet();
35                 s.Show();
36             }
37
38         }
39         //身份验证的函数
40         private void verify_identidy(string table,string name)
41         {
42             DataSet ds = new DataSet();
43             ds = sqlhelper.ExecuteDataSet("select * from "+table+" where "+name+" = ‘" + tbx_loginname.Text + "‘");
44             DataTable dt = new DataTable();
45             dt = ds.Tables[0];
46             if (dt.Rows.Count != 0)
47             {
48                 GlobelValue = tbx_loginname.Text;
49                 this.Visible = false;   //隐藏当前窗体
50             }
51             else
52             {
53                 MessageBox.Show("用户名不存在,请重新输入");
54             }
55         }
56         //退出按钮
57         private void btn_close_Click(object sender, EventArgs e)
58         {
59             this.Close();
60         }
61
62
63
64     }
65 }

2.主界面-管理员

预览:

管理员信息:

学生信息:

主要使用控件:datagridview

相关代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10
 11 namespace sql_homework_end
 12 {
 13     public partial class main : Form
 14     {
 15         public main()
 16         {
 17             InitializeComponent();
 18
 19         }
 20         //绑定并显示相关信息
 21         DataSet ds = new DataSet();
 22         DataTable dt = new DataTable();
 23         private void 学生信息ToolStripMenuItem_Click(object sender, EventArgs e)
 24         {
 25             ds = sqlhelper.ExecuteDataSet("select * from tb_student");
 26             dt = ds.Tables[0];
 27             dataGridView1.DataSource = dt;
 28         }
 29
 30         private void 课程信息ToolStripMenuItem_Click(object sender, EventArgs e)
 31         {
 32             ds = sqlhelper.ExecuteDataSet("select * from tb_course");
 33             dt = ds.Tables[0];
 34             dataGridView1.DataSource = dt;
 35         }
 36
 37         private void 选课信息ToolStripMenuItem_Click(object sender, EventArgs e)
 38         {
 39             ds = sqlhelper.ExecuteDataSet("select * from tb_student_course");
 40             dt = ds.Tables[0];
 41             dataGridView1.DataSource = dt;
 42             dataGridView1.Columns["sc_id"].DisplayIndex = 0;
 43         }
 44         private void 管理员信息ToolStripMenuItem_Click(object sender, EventArgs e)
 45         {
 46             ds = sqlhelper.ExecuteDataSet("select * from tb_admin");
 47             dt = ds.Tables[0];
 48             dataGridView1.DataSource = dt;
 49         }
 50         //添加按钮事件
 51         private void btn_insert_Click(object sender, EventArgs e)
 52         {
 53             if (dataGridView1.Columns[0].HeaderText=="student_num")
 54             {
 55                 string sql = @"insert tb_student (student_num,student_name,student_password,student_sex
 56                         ,student_age,student_dept)values(‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0].Value + "‘,‘" +
 57                         dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[2].Value
 58                         + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[3].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[4].Value
 59                         + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[5].Value + "‘)";
 60                 sqlhelper.ExecuteNoQuery(sql);
 61
 62             }
 63             else if (dataGridView1.Columns[0].HeaderText=="course_num")
 64             {
 65                 string sql = @"insert tb_course (course_num,course_name,course_credit,course_semester)values(‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[2].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[3].Value + "‘)";
 66                 sqlhelper.ExecuteNoQuery(sql);
 67             }
 68             else if (dataGridView1.Columns[0].HeaderText=="sc_id")
 69             {
 70                 try
 71                 {
 72                     string sql = @"insert tb_student_course (sc_id,student_num,course_num,grade)values(‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[2].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[3].Value + "‘)";
 73                     sqlhelper.ExecuteNoQuery(sql);
 74                 }
 75                 catch (Exception)
 76                 {
 77                     MessageBox.Show("学号或姓名不存在,请重新添加。");
 78                 }
 79
 80             }
 81             else if (dataGridView1.Columns[0].HeaderText == "admin_id")
 82             {
 83                 string sql = @"insert tb_admin (admin_id,admin_name,admin_password,remark)values(‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[2].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[3].Value + "‘)";
 84                 sqlhelper.ExecuteNoQuery(sql);
 85             }
 86             MessageBox.Show("添加成功");
 87         }
 88         //更新按钮事件
 89         private void btn_update_Click(object sender, EventArgs e)
 90         {
 91             if (dataGridView1.Columns[0].HeaderText == "student_num")
 92             {
 93                 update("tb_student","student_num");
 94             }
 95             else if (dataGridView1.Columns[0].HeaderText == "course_num")
 96             {
 97                 update("tb_course","course_num");
 98             }
 99             else if (dataGridView1.Columns[0].HeaderText == "admin_id")
100             {
101                 update("tb_admin","admin_id");
102             }
103             else if (dataGridView1.Columns[0].HeaderText == "sc_id")
104             {
105                 try
106                 {
107                     update("tb_studnet_course","sc_id");
108                 }
109                 catch (Exception)
110                 {
111                     MessageBox.Show("学号或课程号不存在,请重新输入");
112                     throw;
113                 }
114             }
115         }
116         //更新方法
117         private void update(string table,string head_id)
118         {
119             for (int i = 0; i < dataGridView1.RowCount; i++)
120             {
121                 int id = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
122                 for (int j = 1; j < dataGridView1.ColumnCount; j++)
123                 {
124                     if (dataGridView1.Columns[j].Visible == true)
125                     {
126                         string columnName = dataGridView1.Columns[j].Name.ToString();
127                         string sql = "update " + table + " set " + columnName + "=‘" + dataGridView1.Rows[i].Cells[j].Value + "‘ where " + head_id + "=‘" + id + "‘";
128                         sqlhelper.ExecuteNoQuery(sql);
129                     }
130                 }
131             }
132             MessageBox.Show("更新成功");
133         }
134
135         //删除事件
136         private void btn_delete_Click(object sender, EventArgs e)
137         {
138             if (dataGridView1.Columns[0].HeaderText == "student_num")
139             {
140                 string sql = "delete from tb_student where student_num=‘" + dataGridView1.SelectedCells[0].Value + "‘";
141                 sqlhelper.ExecuteNoQuery(sql);
142             }
143             else if (dataGridView1.Columns[0].HeaderText == "course_num")
144             {
145                 string sql = "delete from tb_course where course_num=‘" + dataGridView1.SelectedCells[0].Value + "‘";
146                 sqlhelper.ExecuteNoQuery(sql);
147             }
148             else if (dataGridView1.Columns[0].HeaderText == "sc_id")
149             {
150                 string sql = "delete from tb_student_course where sc_id=‘" + dataGridView1.SelectedCells[0].Value + "‘";
151                 sqlhelper.ExecuteNoQuery(sql);
152             }
153             else if (dataGridView1.Columns[0].HeaderText == "admin_id")
154             {
155                 string sql = "delete from tb_admin where admin_id=‘" + dataGridView1.SelectedCells[0].Value + "‘";
156                 sqlhelper.ExecuteNoQuery(sql);
157             }
158             MessageBox.Show("删除成功");
159         }
160
161         //界面载入显示身份和登录时间
162         private void main_Load(object sender, EventArgs e)
163         {
164             lbl_username.Text = "Welcome," + login.GlobelValue + "";
165             lbl_logintime.Text ="登录时间:" +DateTime.Now.ToString()+"";
166         }
167     }
168 }

3.学生界面

界面预览:

个人信息显示:在这个界面,学生能看到自己的信息,并进行修改操作。

代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.ComponentModel;
  4 using System.Data;
  5 using System.Drawing;
  6 using System.Linq;
  7 using System.Text;
  8 using System.Threading.Tasks;
  9 using System.Windows.Forms;
 10
 11 namespace sql_homework_end
 12 {
 13     public partial class studnet : Form
 14     {
 15         public studnet()
 16         {
 17             InitializeComponent();
 18         }
 19
 20         DataSet ds = new DataSet();
 21         DataTable dt = new DataTable();
 22         private void studnet_Load(object sender, EventArgs e)
 23         {
 24             lbl_username.Text = "Welcome," + login.GlobelValue + "";
 25             lbl_logintime.Text = "登录时间:" + DateTime.Now.ToString() + "";
 26
 27
 28         }
 29         //相关信息显示
 30         private void 个人信息ToolStripMenuItem_Click(object sender, EventArgs e)
 31         {
 32             ds = sqlhelper.ExecuteDataSet("select * from tb_student where student_name=‘" + login.GlobelValue + "‘");
 33             dt = ds.Tables[0];
 34             dataGridView1.DataSource = dt;
 35             btn_update.Visible = true;
 36             btn_insert.Visible = false;
 37             btn_delete.Visible = false;
 38         }
 39
 40         private void 课程信息ToolStripMenuItem_Click(object sender, EventArgs e)
 41         {
 42
 43             ds = sqlhelper.ExecuteDataSet("select * from tb_course");
 44             dt = ds.Tables[0];
 45             dataGridView1.DataSource = dt;
 46             btn_update.Visible = false;
 47             btn_insert.Visible = false;
 48             btn_delete.Visible = false;
 49         }
 50
 51         private void 选课管理ToolStripMenuItem_Click(object sender, EventArgs e)
 52         {
 53
 54             ds = sqlhelper.ExecuteDataSet(@"select sc.sc_id,s.student_num,c.course_num,c.course_name,grade
 55 from tb_student_course sc join tb_student s on sc.student_num=s.student_num
 56 join tb_course c on sc.course_num=c.course_num
 57 where s.student_name = ‘" + login.GlobelValue + "‘");
 58             dt = ds.Tables[0];
 59             dataGridView1.DataSource = dt;
 60             dataGridView1.Columns["sc_id"].DisplayIndex = 0;
 61             btn_update.Visible = false;
 62             btn_insert.Visible = true;
 63             btn_delete.Visible = true;
 64         }
 65         //学生选课功能
 66         private void btn_insert_Click_1(object sender, EventArgs e)
 67         {
 68             if (Convert.ToInt32(dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[4].Value) > 0)
 69             {
 70                 MessageBox.Show("不准填写成绩");
 71             }
 72             else
 73             {
 74                 string sql = @"insert tb_student_course (sc_id,student_num,course_num)values(‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[0].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[1].Value + "‘,‘" + dataGridView1.Rows[dataGridView1.RowCount - 2].Cells[2].Value + "‘)";
 75                 sqlhelper.ExecuteNoQuery(sql);
 76                 MessageBox.Show("选课成功");
 77             }
 78         }
 79         //删除选的课程
 80         private void btn_delete_Click(object sender, EventArgs e)
 81         {
 82             string sql = "delete from tb_student_course where sc_id=‘" + dataGridView1.SelectedCells[0].Value + "‘";
 83             sqlhelper.ExecuteNoQuery(sql);
 84             MessageBox.Show("删除成功,请重新选课。");
 85         }
 86         //更新个人信息
 87         private void btn_update_Click(object sender, EventArgs e)
 88         {
 89             update("tb_student", "student_num");
 90         }
 91         private void update(string table, string head_id)
 92         {
 93             for (int i = 0; i < dataGridView1.RowCount; i++)
 94             {
 95                 int id = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
 96                 for (int j = 1; j < dataGridView1.ColumnCount; j++)
 97                 {
 98                     if (dataGridView1.Columns[j].Visible == true)
 99                     {
100                         string columnName = dataGridView1.Columns[j].Name.ToString();
101                         string sql = "update " + table + " set " + columnName + "=‘" + dataGridView1.Rows[i].Cells[j].Value + "‘ where " + head_id + "=‘" + id + "‘";
102                         sqlhelper.ExecuteNoQuery(sql);
103                     }
104                 }
105             }
106             MessageBox.Show("更新成功");
107         }
108
109     }
110 }

最后,写得有点乱啊。看不懂的话,可以看源码

时间: 2024-10-12 15:42:06

学生信息管理系统2(程序设计篇+源码+数据库备份)的相关文章

手把手搭建Java学生信息管理系统【附源码】

基于JavaWeb的学生信息管理系统的设计与实现 一.系统简介 本课程演示的是一套基于JavaWeb实现的学生信息管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群. 详细介绍了学生信息管理系统的实现,包括:1.项目介绍2.环境搭建3.系统功能4.技术实现5.项目运行6.功能演示 以通俗易懂的方式,手把手的带你从零开始运行本套学生信息管理系统,该项目附带全部源码可作为毕设使用. 二.技术实现 ?1. 后台框架:Servlet.JSP.JDBC.DbUtils ?2

Java学生信息管理系统源码

学生信息管理系统 功能说明 学生信息管理,包括学生.班级.院系.课程.成绩等的管理. 本程序仅供学习食用. 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1.安装JDK. 2.导入SQL脚本并配置. 使用前请导入DumpStructureOnly.sql(数据库结构文件) 或者 DumpStructure_and_Data.sql(带有测试数据的数据库文件), 使用Navicat导入上述脚本至MySQL数据库 修改dbConn.java配置文件: 数据库端口:3306 数据

2018.4.2 学生信息管理系统(集合版) 完整篇

学生信息管理系统(集合版) Student.java package com.lanqiao.demo; /** * 学生类 * * @author qichunlin * */ public class Student { private String name;// 姓名 private double[] score = new double[3];// 三门课程成绩 // get set public String getName() { return name; } public voi

S2SH框架学生信息管理系统之毕业论文

大家好,马上毕业了,最近在忙着我的毕业设计.十天的日夜兼程,终于做完了,剩下的又是一个伤感的6月——毕业季,我的大学就要随着一顿散伙饭拜拜了. 好了,不多说了.这次给大家分享我的毕业设计,基于S2SH开发的学生信息管理系统,主要实现系级,专业,班级,学生,老师,课程,分数简单的CRUD以及 角色和权限的设计与分配. 分享出来,给大家做毕业设计一个参照,希望高手多多指点.项目的论文files.cnblogs.com/files/yx-my-life/S2SH%E6%A1%86%E6%9E%B6%E

学生信息管理系统修改

北京工业大学耿丹学院 c语言设计课程报告   课程设计名称:高级语言程序设计 专业班级:计算机科学与技术1 姓名:吴双 学号:150809201   2016年5月10日 一 对c语言指针链表的体会 ------------------------ 二 修改学生信息管理系统 ------------------------ 三 体会 ------------------------ 一 对c语言指针链表的体会 1.指针 简单来说,指针是一个存储计算机内存地址的变量. 用 int *ptr 这种形

学生信息管理系统(四)——模块分析

学生信息管理系统已经敲完了,也进行了第一次验收,结果不是太理想.之前的总结也没有及时发表.现在重新复习一遍,把它发表. 从今天开始,我们就进入了代码分析阶段.现在我们就来分析一下模块中的几个函数. Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset 'executes SQL and returns Recordset Dim cnn As ADODB.Connection

学生信息管理系统 1.0

学生信息管理系统V1.0 1.实现用户的注册与登录功能. 1.1:注册时检测用户名,如果有重复则需要重新输入,用户信息存入数据库. 1.2:登录时,有验证码验证. 2.实现用户查询学生表的基本信息. 3.用户可以更改.删除学生表信息. 4.系统可以正确显示系统时间. 5.系统正确显示用户权限(功能暂未实现). 因为很多东西还没有学到,只能用最基础的代码实现功能. 1)欢迎页面 1 <%@ page language="java" contentType="text/ht

学习学生信息管理系统

北京工业大学耿丹学院               C语言课程设计报告   课程设计名称:高级语言程序设计 专业班级:计算机科学与技术1 姓名:吴双 学号:150809201   2016年5月1日                 这次作业的目的是阅读并理解学生信息管理系统.   #include"stdio.h" #include"stdlib.h" #include"string.h" #include"conio.h" #

使用python实现一个简单的学生信息管理系统

最近公司搬办公室,杂七杂八的事情比较多,又碰上业务要上线了...很多事情堆到一起来做,导致最近没什么时间学习,写博客.前两天胜利日放假,把以前用java写的学生信息管理系统用python重新写了一遍,以便于帮助python的学习. 好了,废话不多说,首先进行需求分析,下面是我根据需求画的系统结构图: 纯手工制图.....画的不好敬请谅解.从上图来看,整个系统分为main,add,delete,change,select,sort,io,print共八个模块,实现了对学生信息的增删改查排的功能,将