失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

时间:2020-04-07 18:20:41

相关推荐

C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)

目录

一、创建数据库表和配置SQL数据库连接信息1、创建数据库表2、配置数据库连接信息 二、配置程序代码1、StudentAccount类2、Student类3、TeacherAccount类4、Teacher类5、Program类

一、创建数据库表和配置SQL数据库连接信息

1、创建数据库表

先创建一个“学生成绩信息管理系统”数据库,再创建3张表,分别为GradeTable(学生成绩表)、StudentAccount(学生账号信息表)、TeacherAccount(教师账号信息表),设置好数据类型,如图所示。

2、配置数据库连接信息

新建一个C#控制台程序,找到App.config文件,在里面填写数据库连接信息,我这里的连接方式为windows身份验证,如图所示。

App.config里面的代码格式

<?xml version="1.0" encoding="utf-8" ?><configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup><connectionStrings><add name="sqlserver" connectionString="server=SDFGHJ\SQLEXPRESS;database=学生成绩信息管理系统;integrated security = true;"/></connectionStrings>//SDFGHJ\SQLEXPRESS为SQL数据库的服务器名称。</configuration>

调用该连接信息的方法示例

using System;using System.Configuration;using System.Data.SqlClient;using System.Data;using System.Diagnostics;using System.Text;using System.Security.Cryptography;namespace ConsoleApp1NEW1{class Program{public static readonly string Stu = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;public static void Arr(){SqlConnection conn = new SqlConnection(Stu);conn.Open();//打开数据库conn.Close();//关闭数据库}static void Main(){Arr();Console.ReadKey();}}

二、配置程序代码

这次的代码量相对以往来说有点多,所以我写的时候创建了四个类,分别是:StudentAccount(学生账号信息管理类)、TeacherAccount(教师账号信息管理类)、Student(学生查看成绩信息类)、Teacher(教师管理成绩信息类)。

1、StudentAccount类

学生账号信息类里面的代码里面的代码:

class StudentAccount //学生账号信息类{public static readonly string Stu = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;private string MD5Encrypt(string rawPass, string salt) //MD5加盐加密操作{MD5 md5 = MD5.Create();byte[] bs = Encoding.UTF8.GetBytes(rawPass + salt);byte[] hs = puteHash(bs);StringBuilder stb = new StringBuilder();foreach (byte b in hs){stb.Append(b.ToString("x2"));}return stb.ToString();}public static void Arr(){SqlConnection conn = new SqlConnection(Stu);conn.Open();conn.Close();}public void Login() //学生账号登录{Console.WriteLine("\n--------- 1.学生账号登录 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入账号:");string username = Console.ReadLine().Trim().Trim();Console.Write("请输入密码:");string password = Console.ReadLine().Trim().Trim();while (true){conn.Open();SqlCommand cmd = conn.CreateCommand();mandText = "select * from StudentAccount where Number='" + username + "'";SqlDataReader sdt = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim().Trim();}else if (Equals(password, "")){Console.Write("密码不得为空!\n请输入密码");password = Console.ReadLine().Trim();}else if (sdt.Read()) //读取到记录{string result = sdt.GetString(sdt.GetOrdinal("password"));if (MD5Encrypt(password, username).Equals(result)){Console.WriteLine("账号登录成功!");conn.Close(); //关闭数据库连接Student st = new Student();st.Main();}else{Console.WriteLine("账号密码错误!\n");conn.Close();Login();}}else{YesOrNo();}conn.Close();}}private void YesOrNo() //是否注册新账号{Console.WriteLine("\n账号不存在,是否选择注册一个新账号?\n1、是;2、否");string num = Console.ReadLine().Trim();Program st = new Program();switch (num){case "1": Register(); break;case "2": st.Main2(); break;default: YesOrNo(); break;}}public void Register()//学生账号注册{Console.WriteLine("\n--------- 1.学生账号注册 ---------");SqlConnection conn = new SqlConnection(Stu);conn.Open();Console.Write("请输入注册账号:");string username = Console.ReadLine().Trim();Console.Write("请输入账号密码:");string password = Console.ReadLine().Trim();Console.Write("请确认账号密码:");string repassword = Console.ReadLine().Trim();while (true){string sql = "Select Number from StudentAccount where Number='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//判断账号是否已存在mandType = CommandType.Text;SqlDataReader sdt = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("注册账号不得为空!\n请输入注册账号:");username = Console.ReadLine().Trim();}else if (Equals(password, "")){Console.Write("账号密码不得为空!\n请输入账号密码:");password = Console.ReadLine().Trim();}else if (repassword.Equals("") || !password.Equals(repassword)){Console.Write("请重新确认密码:");repassword = Console.ReadLine().Trim();}else{if (sdt.Read()){Console.WriteLine("该账号已注册,请重新注册账号!\n");Register();}else{//插入的信息分别为账号,密文Insert(username, MD5Encrypt(password, username));//调用函数Insert()保存注册信息到数据库conn.Close();}}conn.Close();}}private void Insert(string txt1, string txt2) //数据库插入注册成功后的学生账号信息{SqlConnection conn = new SqlConnection(Stu);Program st = new Program();conn.Open();try{string InsertStr = string.Format("insert into StudentAccount values('{0}','{1}')", txt1, txt2);SqlCommand comm = conn.CreateCommand();mandText = InsertStr;SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();Console.WriteLine("账号注册成功!\n");st.Main2();conn.Close();}catch (Exception ex){Console.WriteLine("账号注册失败!\n");Console.WriteLine(ex.Message);conn.Close();st.Main2();}conn.Close();}public void Change() //修改学生账号密码{Console.WriteLine("\n--------- 2.账号登录修改 ---------");SqlConnection conn = new SqlConnection(Stu);conn.Open();Console.Write("请输入账号:");string username = Console.ReadLine().Trim();Console.Write("请输入旧密码:");string oldpassword = Console.ReadLine().Trim();Console.Write("请输入新密码:");string newpassword = Console.ReadLine().Trim();while (true){string sql = "Select * from StudentAccount where Number='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//调用登录窗体Form1参数username,判断当前账号密码是否正确SqlDataReader reader = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim();}else if (Equals(oldpassword, "")){Console.Write("密码不得为空!\n请输入旧密码:");oldpassword = Console.ReadLine().Trim();}else if (Equals(newpassword, "")){Console.Write("密码不得为空!\n请输入新密码:");newpassword = Console.ReadLine().Trim();}else if (oldpassword.Equals(newpassword)){Console.Write("新旧密码相同,请重新输入密码:");oldpassword = Console.ReadLine().Trim();}else if (reader.Read()){string result = reader.GetString(reader.GetOrdinal("password")); //读取到的密码if (MD5Encrypt(oldpassword, username).Equals(result)){ChangeSave(username, MD5Encrypt(newpassword, username));//调用Change()函数方法保存修改后的账号信息到数据库conn.Close();}else{Console.WriteLine("账号密码错误!\n");Change();}}else{Console.WriteLine("该账号不存在!\n");Student sdt = new Student();sdt.Main();}conn.Close();}}private void ChangeSave(string txt1, string txt2)//数据库保存修改后的账号信息{SqlConnection conn = new SqlConnection(Stu);try{conn.Open();string InsertStr = string.Format("update StudentAccount set password='{0}' where Number='{1}';", txt2.ToString(), txt1.ToString());SqlCommand comm = conn.CreateCommand();SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();Console.WriteLine("账号密码修改成功!请重新登录!\n");conn.Close();Program st = new Program();st.Main2();}catch (Exception ex){Console.WriteLine("账号密码修改失败!\n");Console.WriteLine(ex.Message);conn.Close();Student st = new Student();st.Main();}}public void Cancel() //注销学生账号{Console.WriteLine("\n--------- 3.注销当前账号 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入账号:");string username = Console.ReadLine().Trim();Console.Write("请输入密码:");string password = Console.ReadLine().Trim();while (true){conn.Open();string sql = "Select password from StudentAccount where Number='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//判断当前账号密码是否正确mandType = CommandType.Text;SqlDataReader reader = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim();}else if (Equals(password, "")){Console.Write("账号密码不得为空!\n请输入账号密码:");password = Console.ReadLine().Trim();}else if (reader.Read()){string result = reader.GetString(reader.GetOrdinal("password"));if (MD5Encrypt(password, username).Equals(result)){Del(username); //调用方法,删除注销后的账号信息conn.Close(); //关闭数据库对象连接}else{Console.WriteLine("账号密码错误!");Cancel();}}else{Console.WriteLine("该账号不存在!\n");Student sa = new Student();sa.Main();}conn.Close();}}private void Del(string username) //数据库删除注销后的账号信息{SqlConnection conn = new SqlConnection(Stu);conn.Open();try{string sql2 = "delete from StudentAccount where Number='" + username + "'";SqlCommand cmd1 = new SqlCommand(sql2, conn);cmd1.ExecuteNonQuery();conn.Close();Console.WriteLine("账号注销成功!\n");Program stu = new Program();stu.Main2();}catch (Exception ex){Console.WriteLine("账号注销失败!\n");Console.WriteLine(ex.Message);conn.Close();Student stu = new Student();stu.Main();}}}

2、Student类

学生查看成绩信息类里面的代码:

class Student{public static readonly string Stu = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;public void Main(){Console.WriteLine("\n******************************");Console.WriteLine("******* 1.查询本人成绩 *******");Console.WriteLine("******* 2.修改账号密码 *******");Console.WriteLine("******* 3.注销当前账号 *******");Console.WriteLine("******* 4.返回登录界面 *******");Console.WriteLine("******* 0.退出当前程序 *******");Console.WriteLine("******************************");Console.Write("请输入选择:");string num = Console.ReadLine().Trim();StudentAccount st = new StudentAccount();Program sd = new Program();switch (num){case "1": GradeFind(); break;case "2": st.Change(); break;case "3": st.Cancel(); break;case "4": sd.Main2(); break;case "0":{Console.WriteLine("程序已退出!");Console.ReadKey();Process.GetCurrentProcess().Kill();}; break;default: Main(); break;}}private void GradeFind() //查询自己成绩{Console.WriteLine("\n--------- 1.查询本人成绩 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入学号:");string num = Console.ReadLine();try{conn.Open();Console.WriteLine("------------------------------------------------------------------------------");Console.WriteLine(" 学号 | 姓名 | 语文 | 数学 | 英语 | 总分 | 平均分 ");Console.WriteLine("------------------------------------------------------------------------------");SqlCommand cmd = conn.CreateCommand();mandText = "select * from GradeTable where Number= '" + num + "'";SqlDataReader reader = cmd.ExecuteReader();if (reader.Read()){string number = reader.GetString(reader.GetOrdinal("Number"));string name = reader.GetString(reader.GetOrdinal("Name"));double chinese = reader.GetDouble(reader.GetOrdinal("Chinese"));double math = reader.GetDouble(reader.GetOrdinal("Math"));double english = reader.GetDouble(reader.GetOrdinal("English"));double sum = chinese + math + english;double aver = sum / 3.0;Console.WriteLine(" {0} | {1} | {2} | {3} | {4} | {5:F2} | {6:F2} ", number, name, chinese, math, english, sum, aver);Console.WriteLine("------------------------------------------------------------------------------");Console.ReadKey();Main();}else{Console.WriteLine("暂无成绩!\n");Console.ReadKey();Main();}}catch (Exception ex){Console.WriteLine(ex.Message);conn.Close();}}}

3、TeacherAccount类

教师账号信息类里面的代码:

class TeacnerAccount //教师账号管理{private static readonly string Stu = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;//创建数据库连接private string MD5Encrypt(string rawPass, string salt) //MD5加盐加密操作{MD5 md5 = MD5.Create();byte[] bs = Encoding.UTF8.GetBytes(rawPass + salt);byte[] hs = puteHash(bs);StringBuilder stb = new StringBuilder();foreach (byte b in hs){stb.Append(b.ToString("x2"));}return stb.ToString();}public void Login()//教师账号登录{Console.WriteLine("\n--------- 2.教师账号登录 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入账号:");string username = Console.ReadLine().Trim().Trim();Console.Write("请输入密码:");string password = Console.ReadLine().Trim().Trim();while (true){conn.Open();SqlCommand cmd = conn.CreateCommand();mandText = "select * from TeacherAccount where username='" + username + "'";SqlDataReader sdt = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim().Trim();}else if (Equals(password, "")){Console.Write("密码不得为空!\n请输入密码:");password = Console.ReadLine().Trim();}else if (sdt.Read()) //读取到记录{string result = sdt.GetString(sdt.GetOrdinal("password"));if (MD5Encrypt(password, username).Equals(result)){Console.WriteLine("账号登录成功!");conn.Close(); //关闭数据库连接Teacher st = new Teacher();st.Main();}else{Console.WriteLine("账号密码错误!\n");conn.Close();Login();}}else{YesOrNo();}conn.Close();}}private void YesOrNo() //是否注册教师账号{Console.WriteLine("\n账号不存在,是否选择注册一个新账号?\n1、是;2、否");string num = Console.ReadLine().Trim();Program st = new Program();switch (num){case "1": Register(); break;case "2": st.Main2(); break;default: YesOrNo(); break;}}public void Register() //教师账号注册{Console.WriteLine("\n--------- 2.教师账号注册 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入注册账号:");string username = Console.ReadLine().Trim();Console.Write("请输入账号密码:");string password = Console.ReadLine().Trim();Console.Write("请确认账号密码:");string repassword = Console.ReadLine().Trim();while (true){conn.Open();string sql = "Select username from TeacherAccount where username='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//判断账号是否已存在mandType = CommandType.Text;SqlDataReader sdt = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("注册账号不得为空!\n请输入注册账号:");username = Console.ReadLine().Trim();}else if (Equals(password, "")){Console.Write("账号密码不得为空!\n请输入账号密码:");password = Console.ReadLine().Trim();}else if (repassword.Equals("") || !password.Equals(repassword)){Console.Write("请重新确认密码:");repassword = Console.ReadLine().Trim();}else{if (sdt.Read()){Console.WriteLine("该账号已注册,请重新注册账号!");Register();}else{//插入的信息分别为账号,密文Insert(username, MD5Encrypt(password, username));//调用函数Insert()保存注册信息到数据库conn.Close();}}conn.Close();}}private void Insert(string txt1, string txt2) //数据库插入注册成功后的账号信息{SqlConnection conn = new SqlConnection(Stu);conn.Open();Program st = new Program();try{string InsertStr = string.Format("insert into TeacherAccount values('{0}','{1}')", txt1, txt2);SqlCommand comm = conn.CreateCommand();mandText = InsertStr;SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();Console.WriteLine("账号注册成功!\n");conn.Close();st.Main2();}catch (Exception ex){Console.WriteLine("账号注册失败!\n");Console.WriteLine(ex.Message);conn.Close();st.Main2();}conn.Close();}public void Change() //修改教师账号密码{Console.WriteLine("\n--------- 6.修改账号密码 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入账号:");string username = Console.ReadLine().Trim();Console.Write("请输入旧密码:");string oldpassword = Console.ReadLine().Trim();Console.Write("请输入新密码:");string newpassword = Console.ReadLine().Trim();while (true){conn.Open();string sql = "Select password from TeacherAccount where username='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//调用登录窗体Form1参数username,判断当前账号密码是否正确SqlDataReader reader = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim();}else if (Equals(oldpassword, "")){Console.Write("密码不得为空!\n请输入旧密码:");oldpassword = Console.ReadLine().Trim();}else if (Equals(newpassword, "")){Console.Write("密码不得为空!\n请输入新密码:");newpassword = Console.ReadLine().Trim();}else if (oldpassword.Equals(newpassword)){Console.Write("新旧密码相同,请重新输入密码:");oldpassword = Console.ReadLine().Trim();}else if (reader.Read()){string result = reader["password"].ToString(); //读取到的密码if (MD5Encrypt(oldpassword, username).Equals(result)){ChangeSave(username, MD5Encrypt(newpassword, username));//调用Change()函数方法保存修改后的账号信息到数据库conn.Close();}else{Console.WriteLine("账号密码错误!");Change();}}else{Console.WriteLine("该账号不存在!\n");Teacher st = new Teacher();st.Main();}conn.Close();}}private void ChangeSave(string txt1, string txt2)//数据库保存修改后的账号信息{SqlConnection conn = new SqlConnection(Stu);conn.Open();Program st = new Program();try{string InsertStr = string.Format("update TeacherAccount set password='{0}' WHERE username='{1}';", txt2.ToString(), txt1.ToString());SqlCommand comm = conn.CreateCommand();SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();Console.WriteLine("账号密码修改成功!\n");conn.Close();st.Main2();}catch (Exception ex){Console.WriteLine("账号密码修改失败!\n");Console.WriteLine(ex.Message);conn.Close();st.Main2();}}public void Cancel() //注销教师账号{Console.WriteLine("\n--------- 7.注销当前账号 ---------");SqlConnection conn = new SqlConnection(Stu);Console.Write("请输入账号:");string username = Console.ReadLine().Trim();Console.Write("请输入密码:");string password = Console.ReadLine().Trim();while (true){conn.Open();string sql = "Select password from TeacherAccount where username='" + username + "'";SqlCommand cmd = new SqlCommand(sql, conn);//判断当前账号密码是否正确mandType = CommandType.Text;SqlDataReader reader = cmd.ExecuteReader();if (Equals(username, "")){Console.Write("账号不得为空!\n请输入账号:");username = Console.ReadLine().Trim();}else if (Equals(password, "")){Console.Write("账号密码不得为空!\n请输入账号密码:");password = Console.ReadLine().Trim();}else if (reader.Read()){string result = reader.GetString(reader.GetOrdinal("password"));if (MD5Encrypt(password, username).Equals(result)){Del(username); //调用方法,删除注销后的账号信息conn.Close(); //关闭数据库对象连接}else{Console.WriteLine("账号密码错误!");Cancel();}}else{Console.WriteLine("该账号不存在!\n");Teacher st = new Teacher();st.Main();}conn.Close();}}private void Del(string username) //数据库删除注销后的账号信息{SqlConnection conn = new SqlConnection(Stu);Program sdt = new Program();try{conn.Open();string sql2 = "delete from GradeTable where username='" + username + "'";SqlCommand cmd1 = new SqlCommand(sql2, conn);cmd1.ExecuteNonQuery();conn.Close();Console.WriteLine("账号注销成功!\n");sdt.Main2();}catch (Exception ex){Console.WriteLine("账号注销失败!\n");Console.WriteLine(ex.Message);conn.Close();sdt.Main2();}}}

4、Teacher类

教师管理成绩信息类里面的代码

class Teacher //教师管理学生成绩类{private static readonly string Stu = ConfigurationManager.ConnectionStrings["sqlserver"].ConnectionString;public void Main(){Console.WriteLine("\n******************************");Console.WriteLine("******* 1.学生成绩输入 *******");Console.WriteLine("******* 2.学生成绩输出 *******");Console.WriteLine("******* 3.学生成绩查询 *******");Console.WriteLine("******* 4.学生成绩修改 *******");Console.WriteLine("******* 5.学生成绩删除 *******");Console.WriteLine("******* 6.修改账号密码 *******");Console.WriteLine("******* 7.注销当前账号 *******");Console.WriteLine("******* 8.返回登录界面 *******");Console.WriteLine("******* 0.退出当前程序 *******");Console.WriteLine("******************************");Console.Write("请输入选择:");string num = Console.ReadLine().Trim();TeacnerAccount std = new TeacnerAccount();Program sd = new Program();switch (num){case "1": GradeInput(); break;case "2": GradeOutput(); break;case "3": GradeFind(); break;case "4": GradeChange(); break;case "5": GradeDelete(); break;case "6": std.Change(); break;case "7": std.Cancel(); break;case "8": sd.Main2(); break;case "0":{Console.WriteLine("程序已退出!");Console.ReadKey();Process.GetCurrentProcess().Kill();}; break;default: Main(); break;}}private void GradeInput() //学生成绩输入{SqlConnection conn = new SqlConnection(Stu);Console.WriteLine("\n----------- 1.学生成绩输入 -----------");Console.Write("请输入学生学号:");string name = Console.ReadLine().Trim();Console.Write("请输入学生姓名:");string number = Console.ReadLine().Trim();Console.Write("请输入语文成绩:");string chinese = Console.ReadLine().Trim();Console.Write("请输入数学成绩:");string math = Console.ReadLine().Trim();Console.Write("请输入英语成绩:");string english = Console.ReadLine().Trim();while (true){if (Equals(name, "")){Console.Write("学生姓名不得为空!\n请输入学生姓名:");name = Console.ReadLine().Trim();}else if (Equals(number, "")){Console.Write("学生学号不得为空!\n请输入学生学号:");number = Console.ReadLine().Trim();}else if (Equals(chinese, "")){Console.Write("语文成绩不得为空!\n请输入语文成绩:");chinese = Console.ReadLine().Trim();}else if (Equals(math, "")){Console.Write("数学成绩不得为空!\n请输入数学成绩:");math = Console.ReadLine().Trim();}else if (Equals(english, "")){Console.Write("英语成绩不得为空!\n请输入英语成绩:");english = Console.ReadLine().Trim();}else{conn.Open();string sql = "Select Number from GradeTable where Number='" + number + "'";SqlCommand cmd = new SqlCommand(sql, conn);//判断该学生成绩信息是否已输入mandType = CommandType.Text;SqlDataReader sdt = cmd.ExecuteReader();switch (sdt.Read()){case true:Console.WriteLine("该学生成绩信息已输入!");Main();break;default:Input(name, number, chinese, math, english);break;}conn.Close();}}}private void Input(string name, string number, string chinese, string math, string english) //保存输入的成绩到数据库{SqlConnection conn = new SqlConnection(Stu);try{conn.Open();string InsertStr = string.Format("insert into GradeTable values('{0}','{1}','{2}','{3}','{4}')", name, number, chinese, math, english);SqlCommand comm = conn.CreateCommand();mandText = InsertStr;SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();Console.WriteLine("学生成绩输入成功!");conn.Close();Console.ReadKey();Main();}catch (Exception ex){Console.WriteLine("学生成绩输入失败!");Console.WriteLine(ex.Message);Console.ReadKey();Main();}}private void GradeOutput() //学生成绩输出{Console.WriteLine("\n****************************** 2.学生成绩输出 ********************************");Console.WriteLine("------------------------------------------------------------------------------");Console.WriteLine(" 学号 | 姓名 | 语文 | 数学 | 英语 | 总分 | 平均分 ");Console.WriteLine("------------------------------------------------------------------------------");SqlConnection conn = new SqlConnection(Stu);conn.Open();SqlCommand cmd = conn.CreateCommand();mandText = "select* from GradeTable ";SqlDataReader reader = cmd.ExecuteReader();while (reader.Read()){string number = reader["Number"].ToString();string name = reader["Name"].ToString();double chinese = reader.GetDouble(reader.GetOrdinal("Chinese"));double math = reader.GetDouble(reader.GetOrdinal("Math"));double english = reader.GetDouble(reader.GetOrdinal("English"));double sum = chinese + math + english;double aver = sum / 3.0;Console.WriteLine(" {0} | {1} | {2} | {3} | {4} | {5:F2} | {6:F2} ", number, name, chinese, math, english, sum, aver);Console.WriteLine("------------------------------------------------------------------------------");}Console.ReadKey();Main();}private void GradeFind(){Console.WriteLine("\n****************** 3.学生成绩查询 ********************");Console.Write("1、按姓名查询;2、按学号查询;0、返回\n请输入选择:");string num = Console.ReadLine().Trim();switch (num){case "1":{Console.Write("请输入学生姓名:");string name = Console.ReadLine().Trim();SelectName(name);}; break;case "2":{Console.Write("请输入学生学号:");string number = Console.ReadLine().Trim();SelectNumber(number);}; break;case "0": Main(); break;default: GradeFind(); break;}}private void SelectName(string Name) //按学生姓名查找成绩{SqlConnection conn = new SqlConnection(Stu);conn.Open();string sqlStr = "Select count(*) from GradeTable where Name='" + Name + "'";SqlCommand sqlcmd = new SqlCommand(sqlStr, conn);object count = sqlcmd.ExecuteScalar();switch ((int)count){case 0:{Console.WriteLine("查无此人!");Console.ReadKey();Main();}; break;case 1:{SelectNameShow(Name);conn.Close();}; break;default:{Console.WriteLine("该学生姓名有多个,请通过学号来查询!");GradeFind();}; break;}conn.Close();Main();}private void SelectNameShow(string Name){SqlConnection conn = new SqlConnection(Stu);try{conn.Open();Console.WriteLine("------------------------------------------------------------------------------");Console.WriteLine(" 学号 | 姓名 | 语文 | 数学 | 英语 | 总分 | 平均分 ");Console.WriteLine("------------------------------------------------------------------------------");SqlCommand cmd = conn.CreateCommand();mandText = "select * from GradeTable where Name= '" + Name + "'";SqlDataReader reader = cmd.ExecuteReader();if (reader.Read()){string number = reader["Number"].ToString();string name = reader["Name"].ToString();double chinese = reader.GetDouble(reader.GetOrdinal("Chinese"));double math = reader.GetDouble(reader.GetOrdinal("Math"));double english = reader.GetDouble(reader.GetOrdinal("English"));double sum = chinese + math + english;double aver = sum / 3.0;Console.WriteLine(" {0} | {1} | {2} | {3} | {4} | {5:F2} | {6:F2} ", number, name, chinese, math, english, sum, aver);Console.WriteLine("------------------------------------------------------------------------------");}Console.ReadKey();Main();}catch (Exception ex){Console.WriteLine(ex.Message);conn.Close();Main();}}private void SelectNumber(string Number) //按学号查询成绩{SqlConnection conn = new SqlConnection(Stu);conn.Open();Console.WriteLine("------------------------------------------------------------------------------");Console.WriteLine(" 学号 | 姓名 | 语文 | 数学 | 英语 | 总分 | 平均分 ");Console.WriteLine("------------------------------------------------------------------------------");SqlCommand cmd = conn.CreateCommand();mandText = "select * from GradeTable where Number= '" + Number + "'";SqlDataReader reader = cmd.ExecuteReader();if (reader.Read()){string name = reader["Name"].ToString();string number = reader["Number"].ToString();double chinese = reader.GetDouble(reader.GetOrdinal("Chinese"));double math = reader.GetDouble(reader.GetOrdinal("Math"));double english = reader.GetDouble(reader.GetOrdinal("English"));double sum = chinese + math + english;double aver = sum / 3.0;Console.WriteLine(" {0} | {1} | {2} | {3} | {4} | {5:F2} | {6:F2} ", number, name, chinese, math, english, sum, aver);Console.WriteLine("------------------------------------------------------------------------------");}else{Console.WriteLine("查无此人!");Console.ReadKey();GradeFind();}conn.Close();Console.ReadKey();Main();}private void GradeChange() //学生成绩修改{Console.WriteLine("\n----------- 4.学生成绩修改 -----------");SqlConnection conn = new SqlConnection(Stu);conn.Open();Console.Write("请输入学生姓名:");string name = Console.ReadLine().Trim();Console.Write("请输入学生学号:");string number = Console.ReadLine().Trim();SqlCommand cmd = conn.CreateCommand();mandText = "select * from GradeTable where Name='" + name + "' and Number='" + number + "'";SqlDataReader sdt = cmd.ExecuteReader();while (true){if (name.Equals("")){Console.WriteLine("姓名不得为空!\n请输入学生姓名:");name = Console.ReadLine().Trim();}else if (Equals(number, "")){Console.Write("学号不得为空!\n请输入学生学号:");number = Console.ReadLine().Trim();}else if (sdt.Read()){AlterGrade(number);}else{Console.WriteLine("查无此人!");Console.ReadKey();GradeChange();}}}private void AlterGrade(string number) //选择要修改的课程科目{Console.Write("\n1、语文;2、数学;3、英语;0、返回\n请选择要修改成绩的学科:");string num = Console.ReadLine().Trim();switch (num){case "1":{Console.Write("请输入修改后的语文成绩:");string chinese = Console.ReadLine().Trim().Trim();Alter(1, number, chinese);}; break;case "2":{Console.Write("请输入修改后的数学成绩:");string math = Console.ReadLine().Trim().Trim();Alter(2, number, math);}; break;case "3":{Console.Write("请输入修改后的英语成绩:");string english = Console.ReadLine().Trim().Trim();Alter(3, number, english);}; break;case "0": Main(); break;default: AlterGrade(number); break;}}private void Alter(int num, string number, string item) //{SqlConnection conn = new SqlConnection(Stu);conn.Open();if (num.Equals(1)){try{string InsertStr = string.Format("update GradeTable set Chinese='{0}' WHERE Number='{1}';", item, number);SqlCommand comm = conn.CreateCommand();SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();conn.Close();Console.WriteLine("语文成绩修改成功!");Console.ReadKey();AlterGrade(number);}catch (Exception ex){Console.WriteLine("成绩修改失败!");Console.WriteLine(ex.Message);conn.Close();AlterGrade(number);}}else if (num.Equals(2)){try{string InsertStr = string.Format("update GradeTable set Math='{0}' WHERE Number='{1}';", item, number);SqlCommand comm = conn.CreateCommand();SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();conn.Close();Console.WriteLine("数学成绩修改成功!");Console.ReadKey();AlterGrade(number);}catch (Exception ex){Console.WriteLine("成绩修改失败!");Console.WriteLine(ex.Message);conn.Close();AlterGrade(number);}}else if (num.Equals(3)){try{string InsertStr = string.Format("update GradeTable set English='{0}' WHERE Number='{1}';", item, number);SqlCommand comm = conn.CreateCommand();SqlCommand mycom = new SqlCommand(InsertStr, conn);mycom.ExecuteNonQuery();conn.Close();Console.WriteLine("英语成绩修改成功!");Console.ReadKey();AlterGrade(number);}catch (Exception ex){Console.WriteLine("成绩修改失败!");Console.WriteLine(ex.Message);conn.Close();AlterGrade(number);}}}private void GradeDelete() //学生成绩删除{SqlConnection conn = new SqlConnection(Stu);conn.Open();Console.WriteLine("\n****************** 5.学生成绩删除 ********************");Console.Write("请输入学生姓名:");string name = Console.ReadLine().Trim();Console.Write("请输入学生学号:");string number = Console.ReadLine().Trim();SqlCommand cmd = conn.CreateCommand();mandText = "select * from GradeTable where Name='" + name + "' and Number='" + number + "'";SqlDataReader reader = cmd.ExecuteReader();while (true){if (Equals(name, "")){Console.Write("姓名不得为空!\n请输入学生姓名:");name = Console.ReadLine().Trim();}else if (number.Equals("")){Console.Write("学号不得为空!\n请输入学生学号:");number = Console.ReadLine().Trim();}else if (reader.Read()){DelGrade(number);}else{Console.WriteLine("查无此人!");conn.Close();Main();}}}private void DelGrade(string number) //从sql数据库里面输出学生成绩信息{SqlConnection conn = new SqlConnection(Stu);conn.Open();try{string sql2 = "delete from GradeTable where Number='" + number + "'";SqlCommand cmd1 = new SqlCommand(sql2, conn);cmd1.ExecuteNonQuery();Console.WriteLine("成绩信息删除成功!");conn.Close();Console.ReadKey();Main();}catch (Exception ex){Console.WriteLine("成绩信息删除失败!");Console.WriteLine(ex.Message);conn.Close();Main();}}}

5、Program类

Program里面的代码

class Program{private static void SelectLogin(){Console.WriteLine("\n****************************");Console.WriteLine("******** 1.学生登录 ********");Console.WriteLine("******** 2.教师登录 ********");Console.WriteLine("****************************");Console.Write("请选择:");string n = Console.ReadLine();StudentAccount st = new StudentAccount();TeacnerAccount sd = new TeacnerAccount();switch (n){case "1": st.Login(); break;case "2": sd.Login(); break;default: SelectLogin(); break;}}private static void SelectRegister(){Console.WriteLine("\n********************************");Console.WriteLine("******** 1.学生账号注册 ********");Console.WriteLine("******** 2.教师账号注册 ********");Console.WriteLine("********************************");Console.Write("请选择:");string n = Console.ReadLine();StudentAccount st = new StudentAccount();TeacnerAccount sd = new TeacnerAccount();switch (n){case "1": st.Register(); break;case "2": sd.Register(); break;default: SelectRegister(); break;}}public void Main2(){Console.WriteLine("学生成绩信息管理系统 ");Console.WriteLine("****************************");Console.WriteLine("******** 1.账号登录 ********");Console.WriteLine("******** 2.账号注册 ********");Console.WriteLine("******** 0.退出程序 ********");Console.WriteLine("****************************");Console.Write("请输入选择:");string num = Console.ReadLine().Trim();switch (num){case "1": SelectLogin(); break;case "2": SelectRegister(); break;case "0":{Console.WriteLine("程序已退出!");Console.ReadKey();Process.GetCurrentProcess().Kill();}; break;default: Main2(); break;}}static void Main(){Program st = new Program();st.Main2();}}

运行效果截图

如果觉得《C#程序代码连接SQL Server数据库实现学生成绩信息管理系统(重置版)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。