目录

  • 一、创建数据库表和配置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 = md5.ComputeHash(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();cmd.CommandText = "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);      //判断账号是否已存在cmd.CommandType = 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();comm.CommandText = 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);     //判断当前账号密码是否正确cmd.CommandType = 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();cmd.CommandText = "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 = md5.ComputeHash(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();cmd.CommandText = "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);      //判断账号是否已存在cmd.CommandType = 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();comm.CommandText = 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);     //判断当前账号密码是否正确cmd.CommandType = 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);      //判断该学生成绩信息是否已输入cmd.CommandType = 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();comm.CommandText = 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();cmd.CommandText = "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();cmd.CommandText = "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();cmd.CommandText = "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();cmd.CommandText = "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();cmd.CommandText = "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数据库实现学生成绩信息管理系统(重置版)相关推荐

  1. C#实现ODBC驱动代码连接Sql Server数据库

    ODBC连接Sql Server数据库-C#实现 利用ODBC驱动程序,可以以一种相同的语法来存取和维护数据表中的数据.为了便于在应用程序中使用ODBC,首先需要配置ODBC数据源,又称DSN,它把应 ...

  2. 如何通过代码连接SQL Server数据库

    我们曾经为南方电网做过几个有关架空线路的科技项目,要趁着假期有整段的空闲时间,把这些代码整理一下,放入团队刚刚重构的代码库中. 由于这些项目使用的数据库为 SQL Server,所以在整理代码之前需要 ...

  3. MFC使用ADO连接SQL SERVER数据库实现的高校教材管理系统

    摘 要 随着高校规模的扩大和教学的改革的深入,高校的教学水平和管理在稳步提高,而高校的教材管理环节起着为教学和科研提供软环境的重要作用,是与高校综合能力的增强相辅而成的.而现有的高校教材管理系统大多还 ...

  4. visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码)

    visual studio2019连接SQL Server数据库,增删改查详细教程(C#代码) 工具: 1.Visual Studio 2019 2.SQL Server数据库(我使用的2008) 操 ...

  5. (续)Visual Studio 连接SQL Server数据库,代码连接

    (续)Visual Studio 连接SQL Server数据库,代码连接(参考项目https://gitee.com/qmagician/book-management-system) 昨天已经将数 ...

  6. java连接sql server数据库的代码如何改成连接mysql_连接sqlserver数据库代码

    Sql Server的JDBC测试程序与远程连接 参考文献: 1.MySql与oracle的JDBC测试程序 2.查看sqlserver的端口号 代码示例 在我的机器上安装了多个版本的sqlserve ...

  7. java连接sql server数据库的代码如何改成连接mysql_Java连接sql server或mysql数据库(代码)...

    Java连接sql server或mysql数据库(代码) package Test; import java.sql.Connection; import java.sql.DriverManage ...

  8. dw连接mysql数据库原理_Dreamweaver中连接SQL Server数据库代码

    Adobe Dreamweaver CS3连接ACCESS数据库 "Driver={Microsoft Access Driver (*.mdb)};Uid=;Pwd=;DBQ=" ...

  9. ADO.NET连接SQL Server数据库

    在.NET应用程序中,创建数据连接分为三步: 一.定义连接字符串 不同的数据库连接字符串的格式不同,一般都包括要连接的数据库提供都名称.登陆信息以及要使用的数据库名称. 注意:在定义连接字符串之前,一 ...

最新文章

  1. Ubuntu安装nodeJS
  2. python 遍历xml所有节点
  3. 【多线程编程学习】java多线程基于数据分割的大文件下载器
  4. linux在所有文件中查找某一个字符
  5. python爬取网页防止重复内容_python解决网站的反爬虫策略总结
  6. 软件岗位在招聘时到底在考察什么?
  7. 互联网日报 | 3月2日 星期二 | ​互联网人薪资报告:2021 开年薪资环比增长 7%...
  8. APP引导页UI设计素材模板|轻松留下完美的第一印象
  9. for循环连续创建对象
  10. Codeforces 1042 D Petya and Array
  11. 去政府办事,最好事先联系,避免换了地方
  12. 交换机,集线器,路由器这三者怎样区分,各自的作用是什么?
  13. OSChina 周五乱弹 —— 闹钟一响就睡觉
  14. for循环里面的break;和continue;语句
  15. java中GUI中显示当前时间_【java编程】返回当地时间Clock到GUI面板Panel上
  16. 大数据开发薪资水平怎么样?
  17. 用户权限集中管理方案
  18. 中兴软件笔试 c语言,中兴通讯软件工程师面试经验
  19. python极客项目编程pdf微盘下载_《Python极客项目编程 》——2.4 完整代码
  20. win10安装GDCM以期用pydicom读取jpeg无损压缩过的DICOM文件

热门文章

  1. pythonorm_python中ORM是什么?
  2. 数据库死锁原因及解决办法(全)
  3. 【VST变换- 方差稳定变换---广义Anscombe变换】
  4. API接口测试—详情版(拼多多根据ID取商品详情)
  5. photo-sphere-viewer 全景图Vr 720全景查看(vue篇)
  6. 我在的互联网医疗公司解散了
  7. 马尔可夫随机场的python实现
  8. 表视图的基本概念和用法
  9. Editor类---自定义属性面板
  10. 【流量代理】代理模式