数据库课程设计——学生信息管理系统C#,SQL Sever

这篇具有很好参考价值的文章主要介绍了数据库课程设计——学生信息管理系统C#,SQL Sever。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

利用SQL Sever和 VS C#实现

一、程序流程图

二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库

1、新建一个名为MySchool的数据库​​​​​​​

2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作

(1)主界面 

(2)学生登录页面

(3)个人主页

(4)注册页面

(5)管理员登录页面

(6)管理员主页 

(7)登录日志页面 

(8)学生信息页面

(9)课程信息页面

(10)学生成绩信息页面

(11)成绩统计页面

(12)在主界面点击右上角的“×”即退出系统。


利用SQL Sever和 VS C#实现

一、程序流程图

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

 图1:程序流程图

二、具体实现:利用SQL Sever和 VS实现,使用C#连接数据库

1、新建一个名为MySchool的数据库

(1)首先,连接数据库,一定一定要选择“SQL Sever身份验证”方式建立连接,不懂怎么用这种方式连接的可以自行搜索一下,很简单。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图2:数据库连接 

 (2)新建一个名为“MySchool”的数据库,其中含有的表如下:

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图3:MySchool数据库 

对应的SQL语句如下:

USE MySchool;

DROP TABLE IF EXISTS SC       /*成绩*/
DROP TABLE IF EXISTS Student  /*学生信息*/
DROP TABLE IF EXISTS Course   /*课程*/
DROP TABLE IF EXISTS StudentUser  /*学生用户信息*/
DROP TABLE IF EXISTS Administrator  /*管理员用户信息*/
DROP TABLE IF EXISTS SysLog   /*注册日志*/
DROP TABLE IF EXISTS SysLog1   /*登陆日志*/
DROP TABLE IF EXISTS AVG1   /*登陆日志*/

CREATE TABLE StudentUser          
 (	
 ID NCHAR(20) PRIMARY KEY,               /*学号*/  
 PassWord NCHAR(32) ,					/*密码*/
 Sex CHAR(2) ,							/*性别*/
 Birthday datetime,						/*生日*/
 UserMobile NCHAR(11),					/*电话号码*/
 ); 
 CREATE TABLE Administrator          
 (	
 ID NCHAR(20) PRIMARY KEY,               /*工号*/  
 PassWord NCHAR(32) ,             /*密码*/
 Sex CHAR(2),							/*性别*/
 Birthday datetime,				/*生日*/
 UserMobile NCHAR(11),					/*电话号码*/
 );

 CREATE TABLE SysLog          
 (	[UserMobile]
 UserID NCHAR(20) ,  /*id*/
 dentity CHAR(20),  /*学生或管理员*/
 DateAndTime datetime,  /*注册时间*/
 UserOperation NCHAR(200)  /*操作方式*/
 ); 
CREATE TABLE SysLog1          
 (	
 UserID NCHAR(20) ,  /*id*/
 dentity CHAR(20),  /*学生或管理员*/
 DateAndTime datetime,  /*登陆时间*/
 UserOperation NCHAR(200)  /*登陆操作方式*/
 );

CREATE TABLE Student          
 (	
 Sno CHAR(9) PRIMARY KEY,        /* 列级完整性约束条件,Sno是主码*/                  
 Sname CHAR(20) UNIQUE,             /* Sname取唯一值*/
 Ssex CHAR(2),					/*性别*/
 Sage SMALLINT,					/*年龄*/
 Sdept CHAR(20)					/*专业*/
 ); 

CREATE TABLE  Course
 (	
 Cno CHAR(4) PRIMARY KEY,
 Cname CHAR(40),            
 Cpno CHAR(4),               	                      
 Ccredit SMALLINT, 
 ); 

CREATE TABLE  SC
 (
 Sno CHAR(9), 
 Cno CHAR(4),  
 Grade SMALLINT,
 PRIMARY KEY (Sno,Cno),                     /* 主码由两个属性构成,必须作为表级完整性进行定义*/
 FOREIGN KEY (Sno) REFERENCES Student(Sno),  /* 表级完整性约束条件,Sno是外码,被参照表是Student */
 FOREIGN KEY (Cno)REFERENCES Course(Cno)     /* 表级完整性约束条件, Cno是外码,被参照表是Course*/
 ); 

INSERT  INTO  StudentUser VALUES ('20181101111','123456','女',1999-1-1,'13812345678',NULL);
INSERT  INTO  Administrator VALUES ('2018110',substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32),'女',1989-1-1,'13812345687',NULL);
INSERT  INTO  Administrator VALUES ('2018111',substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32),'女',1989-2-1,'13812655687',NULL);


INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215121','李勇','男','CS',20);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215122','刘晨','女','CS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215123','王敏','女','MA',18);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215125','张立','男','IS',19);
INSERT  INTO  Student (Sno,Sname,Ssex,Sdept,Sage) VALUES ('201215128','陈冬','男','IS',20);

SELECT * FROM Student

INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('1','数据库',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('2','数学',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('3','信息系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('4','操作系统',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('5','数据结构',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('6','数据处理',NULL,4);
INSERT  INTO Course(Cno,Cname,Cpno,Ccredit)	VALUES ('7','Pascal语言',NULL,4);

UPDATE Course SET Cpno = '5' WHERE Cno = '1' 
UPDATE Course SET Cpno = '1' WHERE Cno = '3' 
UPDATE Course SET Cpno = '6' WHERE Cno = '4' 
UPDATE Course SET Cpno = '7' WHERE Cno = '5' 
UPDATE Course SET Cpno = '6' WHERE Cno = '7' 

SELECT * FROM Course

INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','1',92);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','2',85);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215121 ','3',88);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','2',90);
INSERT  INTO SC(Sno,Cno,Grade) VALUES ('201215122 ','3',80);

SELECT * FROM SC

--当学生用户信息更新,触发器启动,将更新的内容存至注册日志
IF(OBJECT_ID('regist_recorder1') is not null)        -- 判断名为 regist_recorder 的触发器是否存在
DROP TRIGGER regist_recorder1        -- 删除触发器
GO
CREATE TRIGGER regist_recorder1
ON StudentUser  	         
AFTER
INSERT
AS 
	declare @UserName    nchar(20)
	declare @DateTime    datetime
	declare @UserOperation nchar(200)
	declare @dentity CHAR(20)

	select @UserName = ID FROM StudentUser
	select @DateTime = CONVERT(datetime,GETDATE(),120) 
	select @dentity ='StudentUser'

	declare @op varchar(10)
	select @op=case when exists(select 1 from inserted) and exists(select 1 from deleted)
                   then 'Update'
                   when exists(select 1 from inserted) and not exists(select 1 from deleted)
                   then 'Insert'
                   when not exists(select 1 from inserted) and exists(select 1 from deleted)
                   then 'Delete' end
                   
	
	select @UserOperation = @op
	

	INSERT INTO SysLog(UserID,dentity,DateAndTime,UserOperation)
	VALUES (@UserName,@dentity,@DateTime,@UserOperation)

--当管理员信息更新,触发器启动,将更新的内容存至注册日志
IF(OBJECT_ID('regist_recorder2') is not null)        -- 判断名为 regist_recorder 的触发器是否存在
DROP TRIGGER regist_recorder2        -- 删除触发器
GO
CREATE TRIGGER regist_recorder2
ON Administrator 	         
AFTER
INSERT
AS 
	declare @UserName    nchar(20)
	declare @DateTime    datetime
	declare @UserOperation nchar(200)
	declare @dentity CHAR(20)

	select @UserName = ID FROM Administrator
	select @DateTime = CONVERT(datetime,GETDATE(),120) 
	select @dentity ='Administrator'

	declare @op varchar(10)
	select @op=case when exists(select 1 from inserted) and exists(select 1 from deleted)
                   then 'Update'
                   when exists(select 1 from inserted) and not exists(select 1 from deleted)
                   then 'Insert'
                   when not exists(select 1 from inserted) and exists(select 1 from deleted)
                   then 'Delete' end
                   
	
	select @UserOperation = @op
	

	INSERT INTO SysLog(UserID,dentity,DateAndTime,UserOperation)
	VALUES (@UserName,@dentity,@DateTime,@UserOperation)




--建一个表存储各科平均分
--建一个表存储各科平均分
CREATE TABLE AVG1
	(
		Cname CHAR(10),   /* 科目*/	
		avg1 INT
	);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('数据库',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('数学',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('信息系统',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('操作系统',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('数据结构',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('数据处理',NULL);
INSERT  INTO AVG1(Cname,avg1)	VALUES ('Pascal语言',NULL);

--将成绩信息通过下列存储过程算出各科平均分并存储至AVG表
IF (exists (select * from sys.objects where name = 'COURSE_AVG1'))
	DROP PROCEDURE COURSE_AVG1
	GO
	CREATE  PROCEDURE COURSE_AVG1
	AS
	BEGIN TRANSACTION TRANS  
	DECLARE 
	    @SX INT,    /* 数学总分 */
	    @XXXT INT,    /* 信息系统总分 */
	    @CZXT INT,    /* 操作系统总分 */
		@SJJG INT,    /* 数据结构总分 */
		@SJK_C INT,   /* 数据库总分 */
		@SJCL INT,   /*数据处理总分*/
		@P INT       /*Pascal语言*/
	SELECT @SX=AVG(Grade) FROM SC
						WHERE  Cno='2 '

	SELECT @XXXT=AVG(Grade) FROM SC
						WHERE  Cno='3'

	SELECT @CZXT=AVG(Grade) FROM SC
						WHERE  Cno='4'

	SELECT @SJJG=AVG(Grade) FROM SC
						WHERE  Cno='5'

	SELECT @SJK_C=AVG(Grade) FROM SC
						WHERE  Cno='1'
	SELECT @SJCL=AVG(Grade) FROM SC
						WHERE  Cno='6'
	SELECT @P=AVG(Grade) FROM SC
						WHERE  Cno='7'
	
	BEGIN 
	UPDATE AVG1 SET avg1=@SJK_C WHERE Cname='数据库'
	UPDATE AVG1 SET avg1=@SX WHERE Cname='数学'
	UPDATE AVG1 SET avg1=@XXXT WHERE Cname='信息系统'
	UPDATE AVG1 SET avg1=@CZXT WHERE Cname='操作系统'
	UPDATE AVG1 SET avg1=@SJJG WHERE Cname='数据结构'
	UPDATE AVG1 SET avg1=@SJCL WHERE Cname='数据处理'
	UPDATE AVG1 SET avg1=@P WHERE Cname='Pascal语言'
	COMMIT TRANSACTION TRANS; 
	END

2、C#连接数据库,并实现对MySchool数据库的增、删、改、查操作

(1)主界面:主界面包含欢迎文本和两个可选项,如下图3所示分别为“学生登录”和“管理员登录”,选择不同的选项则分别进入不同的页面。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

 图4:主界面

对应C#实现如下: 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class FormLogin : Form
    {
        public FormLogin()
        {
            InitializeComponent();
        }

        private void buttonStuLogin_Click(object sender, EventArgs e)
        {
            FormStuLogin FormStuLogin = new FormStuLogin(); //学生登录窗体
            FormStuLogin.Show();//跳转至学生登录窗体
            this.Hide();  //隐藏原窗体
        }

        private void buttonManagerLogin_Click(object sender, EventArgs e)
        {
            FormManagerLogin FormManagerLogin = new FormManagerLogin(); //管理员登录窗体
            FormManagerLogin.Show();//跳转至管理员登录窗体
            this.Hide();
        }

        private void FormLogin_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            
        }

        private void FormLogin_FormClosed(object sender, FormClosedEventArgs e)
        {
            while (MessageBox.Show("即将退出系统,您确认退出吗?", "提示!", MessageBoxButtons.YesNo)== DialogResult.Yes)
            {
                System.Environment.Exit(System.Environment.ExitCode);
            }
            


        }


    }
}

(2)学生登录页面:在主界面选择学生登录按钮则进入学生登录页面,页面功能如下图所示。若用户有该系统的账号,则可选择直接登录:先输入用户名,密码以及验证码,三者均正确才能登陆成功。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图5:学生登录页面

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图6:学生登录成功

若其中一项不正确则会弹窗提示你重新输入,如下图所示:

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图7:学生登录失败

对应C#实现如下(连接数据库的代码实现部分大家根据自身情况自行修改,下同):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class FormStuLogin : Form
    {
        public FormStuLogin()
        {
            InitializeComponent();
        }
        
        

        public string code;


        private string EncryptWithMD5(string source)//MD5加密
        {
            byte[] sor = Encoding.UTF8.GetBytes(source);
            MD5 md5 = MD5.Create();
            byte[] result = md5.ComputeHash(sor);
            StringBuilder strbul = new StringBuilder(40);
            for (int i = 0; i < result.Length; i++)
            {
                strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位
            }
            return strbul.ToString();
        }


        private void buttonLogin_Click(object sender, EventArgs e)
        {
            string username = tBUserName.Text.Trim();  //取出账号
            string password = EncryptWithMD5(tBPassword.Text.Trim());  //取出密码并加密

            string myConnString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";

            SqlConnection sqlConnection = new SqlConnection(myConnString);  //实例化连接对象
            sqlConnection.Open();

            string sql = "select ID,PassWord from StudentUser where ID = '" + username + "' and PassWord = '" + password + "'";                                            //编写SQL命令
            SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();//读取数据

            if (sqlDataReader.HasRows && tBVerifyCode.Text == code)//验证是否有该用户及密码且验证码正确
            {
                MessageBox.Show("欢迎使用!");             //登录成功
                StuMain stuMain = new StuMain();
                stuMain.GetId(username);
                stuMain.Show();//显示下一界面
                this.Hide();
            }
            else if (sqlDataReader.HasRows && tBVerifyCode.Text != code)
            {
                MessageBox.Show("验证码错误,登录失败!");
                return;
            }
            else
            {
                MessageBox.Show("账号密码有误,登录失败!");
                return;
            }
            sqlDataReader.Close();
            sql = "insert into SysLog1 values ( '" + username + "' , 'Student','" + DateTime.Now + "' , '" + "Login" + "')";                                            //编写SQL命令,把登陆信息存入登录日志
            SqlCommand sqlCommand1 = new SqlCommand(sql, sqlConnection);
            sqlCommand1.ExecuteNonQuery();
            sqlConnection.Close();

        }
        

        private void buttonReg_Click(object sender, EventArgs e)
        {
            this.Hide();
            RegisterForm registerForm = new RegisterForm();
            registerForm.Show();
        }

        private void FormStuLogin_Load_1(object sender, EventArgs e)
        {
            //随机实例化 
            Random ran = new Random();
            int number;
            char code1;
            //取五个数 
            for (int i = 0; i < 5; i++)
            {
                number = ran.Next();
                if (number % 2 == 0)
                    code1 = (char)('0' + (char)(number % 10));
                else
                    code1 = (char)('A' + (char)(number % 26)); //转化为字符 

                this.code += code1.ToString();
            }

            lbVerifyCode.Text = code;
        }

        private void lbVerifyCode_Click(object sender, EventArgs e)
        {

        }

        private void buttonCancel_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }

        private void FormStuLogin_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            FormLogin m2 = new FormLogin();
            m2.Show();
        }

        private void lbPassword_Click(object sender, EventArgs e)
        {

        }
    }
}

(3)个人主页:学生用户若成功登录则进入个人主页,个人主页共包含“个人基本信息”和“成绩单”两个分页,所展示的信息如下图所示,学生能够看到自己的个人信息和个人成绩,以及各门课程的详细信息。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图8:个人主页——个人信息页

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图9:个人主页——成绩单页

对应C#实现如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace SchoolManage
{
    public partial class StuMain : Form
    {
        public StuMain()
        {
            InitializeComponent();
        }

        private void buttonExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }


        string Id;
        public void GetId(string id)//上个窗体调用此函数,将id值传过来
        {
            lbStuId.Text = id;
            lbStuId.Refresh();
            Id = id;
        }



        private void StuMain_Load_1(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet.Course”中。您可以根据需要移动或移除它。
            this.courseTableAdapter.Fill(this.mySchoolDataSet.Course);
            
            string name, sex, dept, tel;
            int age;
            string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串
            SqlConnection conn = new SqlConnection(connString);//创建connection对象
            conn.Open();//打开数据库  

            //创建数据库命令  
            SqlCommand cmd = conn.CreateCommand();
            //创建查询语句  
            cmd.CommandText = "select * from Student where Sno = '" + Id + "';select * from StudentUser where ID = '" + Id + "'";
            //从数据库中读取数据流存入reader中  
            SqlDataReader reader = cmd.ExecuteReader();

            //从reader中读取下一行数据,如果没有数据,reader.Read()返回flase  
            while (reader.Read())
            {
                name = reader.GetString(reader.GetOrdinal("Sname"));
                sex = reader.GetString(reader.GetOrdinal("Ssex"));
                age = reader.GetInt16(reader.GetOrdinal("Sage"));
                dept = reader.GetString(reader.GetOrdinal("Sdept"));

                lbStuName.Text = name;
                lbStuName.Refresh();
                lbStuSex.Text = sex;
                lbStuAge.Text = age.ToString();
                lbStuDept.Text = dept;
                break;
            }
            reader.NextResult();//执行下一句操作


            //从reader中读取下一行数据,如果没有数据,reader.Read()返回flase  
            while (reader.Read())
            {

                tel = reader.GetString(reader.GetOrdinal("UserMobile"));

                lbPhone.Text = tel;
                break;
            }

            reader.Close();


            SqlDataAdapter dap = new SqlDataAdapter("select * from SC where Sno='" + Id + "'", conn);//查询
            DataSet ds = new DataSet();//创建DataSet对象
            dap.Fill(ds);//填充DataSet数据集
            dataGridView1.DataSource = ds.Tables[0].DefaultView;//显示查询后的数据
            conn.Close();
            int i = 0;
            int x = 0, h = 0;
            int a;
            for (; i < ds.Tables[0].Rows.Count; i++)//读取DataSet中的指定数据
            {
                x += int.Parse(ds.Tables[0].Rows[i][2].ToString());
                if (int.Parse(ds.Tables[0].Rows[i][2].ToString()) > 59)
                    h++;
            }
            if (i == 0) a = 0;
            else a = x / i;
            lbPassnum.Text = h.ToString();
            lbAvgSco.Text = a.ToString();
        }

        private void StuMain_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            FormLogin m2 = new FormLogin();
            m2.Show();
        }

        private void StuMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            
        }

        
    }
}

(4)注册页面:若学生用户没有登陆账号,则需在学生登录界面选择注册按钮,进入注册界面输入相应信息进行注册。成功注册的前提是你为该校的学生且各信息已填写完整。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图10:注册页面

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图11:注册成功

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图12:注册失败

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class RegisterForm : Form
    {
        public RegisterForm()
        {
            InitializeComponent();
        }

        private void buttonRegister_Click(object sender, EventArgs e)
        {
            if (tBStuId.Text.Trim() != "" && tBPassword.Text.Trim() != "" && cBSex.Text.Trim() != "" && tBPhoneNum.Text.Trim() != "")
            {//确认一些信息输入非空
                try
                {

                    string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串
                    SqlConnection connection = new SqlConnection(connString);//创建connection对象

                    string username = tBStuId.Text.Trim();  //取出账号
                    string sex = cBSex.Text.Trim();  //取出性别


                    connection.Open();

                    string sql1 = "select Sno,Ssex from Student where Sno = '" + username + "' and Ssex = '" + sex + "'";                                            //编写SQL命令,查找学生信息中是否有该用户
                    SqlCommand sqlCommand1 = new SqlCommand(sql1, connection);//确认是否有该学员
                    SqlDataReader sqlDataReader1 = sqlCommand1.ExecuteReader();
                    bool a = sqlDataReader1.HasRows;
                    sqlDataReader1.Close();
                    if (a)
                    {

                        string sql2 = "select ID from StudentUser where ID = '" + username + "'";                                            //编写SQL命令
                        SqlCommand sqlCommand2 = new SqlCommand(sql2, connection);//确认是否已经注册过
                        SqlDataReader sqlDataReader2 = sqlCommand2.ExecuteReader();
                        if (!sqlDataReader2.HasRows)
                        {
                            string sql3 = "insert into StudentUser (ID,   PassWord ,Sex, UserMobile, Birthday) " +
                                                            "values (@userid, @userpassword,@sex,@usermobile,@Birthday)";

                            SqlCommand command = new SqlCommand(sql3, connection);
                            SqlParameter sqlParameter = new SqlParameter("@userid", tBStuId.Text);
                            command.Parameters.Add(sqlParameter);
                            sqlParameter = new SqlParameter("@userpassword", EncryptWithMD5(tBPassword.Text));
                            command.Parameters.Add(sqlParameter);
                            sqlParameter = new SqlParameter("@sex", cBSex.Text);
                            command.Parameters.Add(sqlParameter);
                            sqlParameter = new SqlParameter("@usermobile", tBPhoneNum.Text);
                            command.Parameters.Add(sqlParameter);
                            sqlParameter = new SqlParameter("@Birthday", dateTimePicker1.Value);
                            command.Parameters.Add(sqlParameter);
                            sqlDataReader2.Close();
                            //打开数据库连接

                            command.ExecuteNonQuery();
                            connection.Close();
                            MessageBox.Show("注册成功");
                        }
                        else
                        {
                            MessageBox.Show("该用户已注册。");
                        }

                    }
                    else
                    {
                        MessageBox.Show("我校无该学员");
                    }



                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }


                this.Close();
            }
            else
            {
                MessageBox.Show("请将信息填写完整!");
            }

        }
        public Byte[] mybyte = new byte[0];
        public static string EncryptWithMD5(string source)
        {
            byte[] sor = Encoding.UTF8.GetBytes(source);
            MD5 md5 = MD5.Create();
            byte[] result = md5.ComputeHash(sor);
            StringBuilder strbul = new StringBuilder(40);
            for (int i = 0; i < result.Length; i++)
            {
                strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位
            }
            return strbul.ToString();

        }

        private void tBPassword_Leave(object sender, EventArgs e)//校验密码格式
        {
            if (tBStuId.Text.Trim() != "")
            {
                //使用regex(正则表达式)进行格式设置 至少有数字、大写字母、小写字母各一个。最少3个字符、最长20个字符。
                Regex regex = new Regex(@"(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).{3,20}");

                if (regex.IsMatch(tBPassword.Text))//判断格式是否符合要求
                {
                    //MessageBox.Show("输入密码格式正确!");
                }
                else
                {
                    MessageBox.Show("至少有数字、大写字母、小写字母各一个。最少3个字符、最长20个字符!");
                    tBPassword.Focus();
                }
            }
            else
            {
                MessageBox.Show("请填写密码!");
            }
        }


        private void RegisterForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            FormStuLogin m2 = new FormStuLogin();
            m2.Show();
        }

        private void buttonCancel_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

(5)管理员登录页面:若您的身份为管理员,则可在主界面选择“管理员登录”选项,进入管理员登录界面。与学生登录相似,管理员登录成功的前提是正确输入各类信息。但管理员登录不提供“注册”选项,因为管理员身份必须由系统授予——即在数据库中填入相应信息才可成为管理员。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图13:管理员登录页面

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图14:管理员登录成功

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class FormManagerLogin : Form
    {
        public FormManagerLogin()
        {
            InitializeComponent();
        }

        public string code;
        private void buttonLogin_Click(object sender, EventArgs e)
        {
            string username = tBWorknum.Text.Trim();  //取出账号
            string password = EncryptWithMD5(tBPassword.Text.Trim());  //取出密码并加密

            string myConnString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";

            SqlConnection sqlConnection = new SqlConnection(myConnString);  //实例化连接对象
            sqlConnection.Open();

            string sql = "select ID,PassWord from Administrator where ID = '" + username + "' and PassWord = '" + password + "'";                                            //编写SQL命令
            SqlCommand sqlCommand = new SqlCommand(sql, sqlConnection);

            SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

            if (sqlDataReader.HasRows && tBVerifyCode.Text == code)
            {
                MessageBox.Show("欢迎使用!");             //登录成功
                ManagerMain managerMain = new ManagerMain();
                managerMain.Show();
                this.Hide();
            }
            else if (sqlDataReader.HasRows && tBVerifyCode.Text != code)
            {
                MessageBox.Show("验证码错误,登录失败!");
                return;
            }
            else
            {
                MessageBox.Show("账号密码有误,登录失败!");
                return;
            }
            sqlDataReader.Close();
            sql = "insert into SysLog1 values ( '" + username + "' , 'Administrator','" + DateTime.Now + "' , '" + "Login" + "')";                                            //编写SQL命令
            SqlCommand sqlCommand1 = new SqlCommand(sql, sqlConnection);
            sqlCommand1.ExecuteNonQuery();
            sqlConnection.Close();
        }

        private string EncryptWithMD5(string source)
        {
            byte[] sor = Encoding.UTF8.GetBytes(source);
            MD5 md5 = MD5.Create();
            byte[] result = md5.ComputeHash(sor);
            StringBuilder strbul = new StringBuilder(40);
            for (int i = 0; i < result.Length; i++)
            {
                strbul.Append(result[i].ToString("x2"));//加密结果"x2"结果为32位,"x3"结果为48位,"x4"结果为64位
            }
            return strbul.ToString();
        }


        private void FormManagerLogin_Load_1(object sender, EventArgs e)
        {
            //随机实例化 
            Random ran = new Random();
            int number;
            char code1;
            //取五个数 
            for (int i = 0; i < 5; i++)
            {
                number = ran.Next();
                if (number % 2 == 0)
                    code1 = (char)('0' + (char)(number % 10));
                else
                    code1 = (char)('A' + (char)(number % 26)); //转化为字符 

                this.code += code1.ToString();
            }

            lbVerifyCode.Text = code;
        }

        private void FormManagerLogin_FormClosing_1(object sender, FormClosingEventArgs e)
        {
            FormLogin m2 = new FormLogin();
            m2.Show();
        }

        private void buttonCancel_Click_1(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}

(6)管理员主页:管理员主页一共包含五个可选项,如下图所示。其中,对于“学生信息”,“课程信息”,“学生成绩”,管理员可按需进行增、删、改、查操作。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图15:管理员主页

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class ManagerMain : Form
    {
        public ManagerMain()
        {
            InitializeComponent();
        }

        

        private void buttonLog_Click(object sender, EventArgs e)
        {
            this.Hide();
            LogMain m = new LogMain();
            m.Show();
        }

        private void buttonStu_Click(object sender, EventArgs e)
        {
            this.Hide();
            StuMessageMain m = new StuMessageMain();
            m.Show();
        }

        private void buttonCourse_Click(object sender, EventArgs e)
        {
            this.Hide();
            CourseMessageMain m = new CourseMessageMain();
            m.Show();
        }

        private void buttonGrade_Click(object sender, EventArgs e)
        {
            this.Hide();
            StuGradeMain m = new StuGradeMain();
            m.Show();
        }

        private void buttonExit_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void ManagerMain_FormClosed(object sender, FormClosedEventArgs e)
        {
            //Application.Exit();
        }

        private void ManagerMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            FormLogin m2 = new FormLogin();
            m2.Show();
        }

       

        private void ManagerMain_Load(object sender, EventArgs e)
        {

        }
    }
}

(7)登录日志页面:登录日志为管理员提供该系统所有用户的登录记录

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图16:登录日志页面

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class LogMain : Form
    {
        public LogMain()
        {
            InitializeComponent();
        }

        private void LogMain_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet1.SysLog1”中。您可以根据需要移动或移除它。
            this.sysLog1TableAdapter.Fill(this.mySchoolDataSet1.SysLog1);

        }

        private void buttonReturn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void LogMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            ManagerMain m2 = new ManagerMain();
            m2.Show();
        }
    }
}

(8)学生信息页面:为管理员提供学生信息,且管理员可按需进行增、删、改、查操作。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图17:学生信息页面

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace SchoolManage
{
    public partial class StuMessageMain : Form
    {
        public StuMessageMain()
        {
            InitializeComponent();
        }

        private void StuMessageMain_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet2.Student”中。您可以根据需要移动或移除它。
            this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);

        }

        private void buttonReturn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void buttonAdd_Click(object sender, EventArgs e)
        {
            String StuID = tBStuId.Text.Trim();//读取文本框的值
            String StuName = tBStuName.Text.Trim();
            String StuSex = tBStuSex.Text.Trim();
            String StuSdept = tBStuDept.Text.Trim();
            int StuAge = int.Parse(tBStuAge.Text.Trim());
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string insertStr = "INSERT INTO  Student (Sno,Sname,Ssex,Sdept,Sage)    " +
                    "VALUES ('" + StuID + "','" + StuName + "','" + StuSex + "','" + StuSdept + "'," + StuAge + ")";
                SqlCommand cmd = new SqlCommand(insertStr, con);//通过sql语句对表添加数值
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("输入数据违反要求!");
            }
            finally
            {
                con.Dispose();
                tBStuId.Text = "";
                tBStuName.Text = "";
                tBStuSex.Text = "";
                tBStuAge.Text = "";
                tBStuDept.Text = "";
            }
            this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);//刷新表
        }

        private void buttonDelete_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是ID
                string delete_by_id = "delete from Student where Sno=" + select_id;//sql删除语句
                SqlCommand cmd = new SqlCommand(delete_by_id, con);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("请正确选择行!");
            }
            finally
            {
                con.Dispose();

            }
            this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);
        }

        private void buttonEdit_Click(object sender, EventArgs e)
        {
            String StuID = tBStuId.Text.Trim();
            String StuName = tBStuName.Text.Trim();
            String StuSex = tBStuSex.Text.Trim();
            String StuSdept = tBStuDept.Text.Trim();
            int StuAge = 0;
            if (tBStuAge.Text != "") 
            {
                StuAge = int.Parse(tBStuAge.Text.Trim());
            }

            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                if(StuName != "") 
                {
                    string insertStr = "UPDATE Student SET Sname = '" + StuName + "' WHERE Sno = '" + StuID + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if (StuSex != "")
                {
                    string insertStr = "UPDATE Student SET Ssex = '" + StuSex + "' WHERE Sno = '" + StuID + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if (StuSdept != "")
                {
                    string insertStr = "UPDATE Student SET Sdept = '" + StuSdept + "' WHERE Sno = '" + StuID + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if (tBStuAge.Text != "")
                {
                    string insertStr = "UPDATE Student SET Sage = '" + StuAge + "' WHERE Sno = '" + StuID + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }


            }
            catch
            {
                MessageBox.Show("输入数据违反要求!");
            }
            finally
            {
                con.Dispose();
                tBStuId.Text = "";
                tBStuName.Text = "";
                tBStuSex.Text = "";
                tBStuAge.Text = "";
                tBStuDept.Text = "";
            }
            this.studentTableAdapter.Fill(this.mySchoolDataSet2.Student);

        }

        private void buttonSearch_Click(object sender, EventArgs e)
        {
            String StuID = tBStuId.Text.Trim();
            String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";
            SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象
            try
            {
                sqlConnection.Open();
                String select_by_id = "select * from Student where Sno='" + StuID + "'";
                SqlCommand sqlCommand = new SqlCommand(select_by_id, sqlConnection);
                SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                BindingSource bindingSource = new BindingSource();
                bindingSource.DataSource = sqlDataReader;
                dataGridView1.DataSource = bindingSource;
            }
            catch
            {
                MessageBox.Show("查询语句有误,请认真检查SQL语句!");
            }
            finally
            {
                sqlConnection.Close();
                tBStuId.Text = "";
            }
        }

        private void StuMessageMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            ManagerMain m2 = new ManagerMain();
            m2.Show();
        }
    }
}

(9)课程信息页面:为管理员提供课程信息,且管理员可按需进行增、删、改、查操作。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图18:课程信息页面

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class CourseMessageMain : Form
    {
        public CourseMessageMain()
        {
            InitializeComponent();
        }

        private void CourseMessageMain_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet3.Course”中。您可以根据需要移动或移除它。
            this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);

        }

        private void buttonAdd_Click(object sender, EventArgs e)
        {
            String cno = tBCno.Text.Trim();
            String cn = tBCname.Text.Trim();
            String cpo = tBCpno.Text.Trim();
            int cd = 0;
            if(tBCcredit.Text != "")
            {
                cd = int.Parse(tBCcredit.Text.Trim());
            }
            if (cpo == "") 
            {
                cpo = "NULL";
            }
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                if(cno == "" || cn =="" || cd == 0)
                {
                    MessageBox.Show("输入数据违反要求!");
                }
                else
                {
                    con.Open();
                    string insertStr = "INSERT INTO  Course (Cno,Cname,Cpno,Ccredit)    " +
                        "VALUES ('" + cno + "','" + cn + "','" + cpo + "','" + cd + "')";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }
                
            }
            catch
            {
                
            }
            finally
            {
                con.Dispose();
                tBCno.Text = "";
                tBCname.Text = "";
                tBCpno.Text = "";
                tBCcredit.Text = "";
            }
            this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);

        }

        private void buttonDelete_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是ID
                string delete_by_id = "delete from Course where Cno=" + select_id;//sql删除语句
                SqlCommand cmd = new SqlCommand(delete_by_id, con);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("请正确选择行!");
            }
            finally
            {
                con.Dispose();

            }
            this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);

        }

        private void buttonEdit_Click(object sender, EventArgs e)
        {
            String cno = tBCno.Text.Trim();
            String cn = tBCname.Text.Trim();
            String cpo = tBCpno.Text.Trim();
            int cd = 0;
            if(tBCcredit.Text != "")
            {
                cd = int.Parse(tBCcredit.Text.Trim());
            }
            
            if (cpo == "")
            {
                cpo = "NULL";
            }
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");

                con.Open();

                if(cn != "")
                {
                    string insertStr = "UPDATE Course SET Cname = '" + cn + "' WHERE Cno = '" + cno + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if (cpo != "")
                {
                    string insertStr = "UPDATE Course SET Cpno = '" + cpo + "' WHERE Cno = '" + cno + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if (tBCcredit.Text != "")
                {
                    string insertStr = "UPDATE Course SET Ccredit = '" + cd + "' WHERE Cno = '" + cno + "'";
                    SqlCommand cmd = new SqlCommand(insertStr, con);
                    cmd.ExecuteNonQuery();
                }

                if(cno == "")
                {
                    MessageBox.Show("输入数据违反要求!");
                }

            
                con.Dispose();
                tBCno.Text = "";
                tBCname.Text = "";
                tBCpno.Text = "";
                tBCcredit.Text = "";
            
            this.courseTableAdapter.Fill(this.mySchoolDataSet3.Course);
        }

        private void buttonSearch_Click(object sender, EventArgs e)
        {
            String cno = tBCno.Text.Trim();
            String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";
            SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象
            try
            {
                sqlConnection.Open();
                String select_by_id = "select * from Course where Cno='" + cno + "'";
                SqlCommand sqlCommand = new SqlCommand(select_by_id, sqlConnection);
                SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                BindingSource bindingSource = new BindingSource();
                bindingSource.DataSource = sqlDataReader;
                dataGridView1.DataSource = bindingSource;
            }
            catch
            {
                MessageBox.Show("查询语句有误,请认真检查SQL语句!");
            }
            finally
            {
                sqlConnection.Close();
                tBCno.Text = "";
            }
        }

        private void buttonReturn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CourseMessageMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            ManagerMain m2 = new ManagerMain();
            m2.Show();
        }
    }
}

(10)学生成绩信息页面:为管理员提供学生成绩信息,且管理员可按需进行增、删、改、查操作。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图19:学生成绩信息页面

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class StuGradeMain : Form
    {
        public StuGradeMain()
        {
            InitializeComponent();
        }

        private void StuGradeMain_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet4.SC”中。您可以根据需要移动或移除它。
            this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);
            
        }

        private void buttonAdd_Click(object sender, EventArgs e)
        {
            String sno = tBSId.Text.Trim();
            String cno = tBCno.Text.Trim();
            int gra = int.Parse(tBGrade.Text.Trim());
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string insertStr = "INSERT INTO  SC (Sno,Cno,Grade)    " +
                    "VALUES ('" + sno + "','" + cno + "','" + gra + "')";
                SqlCommand cmd = new SqlCommand(insertStr, con);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("输入数据违反要求!");
            }
            finally
            {
                con.Dispose();
                tBSId.Text = "";
                tBCno.Text = "";
                tBGrade.Text = "";
            }
            this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);

        }

        private void buttonDelete_Click(object sender, EventArgs e)
        {
            
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string select_id = dataGridView1.SelectedRows[0].Cells[0].Value.ToString();//选择的当前行第一列的值,也就是ID
                string select_cid = dataGridView1.SelectedRows[0].Cells[1].Value.ToString();//选择的当前行第二列的值,也就是CID
                string deletesql = "delete from SC where Sno='" + select_id + "' AND Cno='" + select_cid + "'";//sql删除语句
                SqlCommand cmd = new SqlCommand(deletesql, con);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("请正确选择行!");
            }
            finally
            {
                con.Dispose();

            }
            this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);

        }

        private void buttonEdit_Click(object sender, EventArgs e)
        {
            String sno = tBSId.Text.Trim();
            String cno = tBCno.Text.Trim();

            int gra = int.Parse(tBGrade.Text.Trim());
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword");
            try
            {
                con.Open();
                string insertStr = "UPDATE SC SET Grade='" + gra + "' WHERE Sno = '" + sno + "' AND Cno = '" + cno + "'";
                SqlCommand cmd = new SqlCommand(insertStr, con);
                cmd.ExecuteNonQuery();
            }
            catch
            {
                MessageBox.Show("输入数据违反要求!");
            }
            finally
            {
                con.Dispose();
                tBSId.Text = "";
                tBCno.Text = "";
                tBGrade.Text = "";
            }
            this.sCTableAdapter.Fill(this.mySchoolDataSet4.SC);

        }

        private void buttonSearch_Click(object sender, EventArgs e)
        {
            String sno = tBSId.Text.Trim();
            String cno = tBCno.Text.Trim();

            String conn = "Data Source=.;Initial Catalog=MySchool;User ID=sa;Password=yourpassword";
            SqlConnection sqlConnection = new SqlConnection(conn);  //实例化连接对象
            try
            {
                String selectsql = "select * from SC where Sno='" + sno + "'";
                sqlConnection.Open();
                if(sno != "" && cno == "")
                {
                    selectsql = "select * from SC where Sno='" + sno + "'";
                }

                if (sno != "" && cno != "")
                {
                    selectsql = "select * from SC where Sno='" + sno + "' AND Cno='" + cno + "'";
                }
                
                SqlCommand sqlCommand = new SqlCommand(selectsql, sqlConnection);
                SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();
                BindingSource bindingSource = new BindingSource();
                bindingSource.DataSource = sqlDataReader;
                dataGridView1.DataSource = bindingSource;
            }
            catch
            {
                MessageBox.Show("查询语句有误,请认真检查SQL语句!");
            }
            finally
            {
                sqlConnection.Close();
                tBSId.Text = "";
                tBCno.Text = "";
            }
        }

        private void buttonMes_Click(object sender, EventArgs e)
        {
            string connString = "Data Source=.;Initial Catalog=MySchool;Persist Security Info=True;User ID=sa;Password=yourpassword";//数据库连接字符串
            SqlConnection connection = new SqlConnection(connString);//创建connection对象
            string sql1 = "EXEC COURSE_AVG1";//编写SQL命令
            SqlCommand sqlCommand1 = new SqlCommand(sql1, connection);
            connection.Open();
            sqlCommand1.ExecuteNonQuery();
            connection.Close();
            this.Hide();
            StatisiticMain m2 = new StatisiticMain();
            m2.Show();

        }

        private void buttonReturn_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void StuGradeMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            ManagerMain m2 = new ManagerMain();
            m2.Show();
        }
    }
}

(11)成绩统计页面:为管理员提供统计信息。

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图20:成绩统计页面

对应C#实现如下:  

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SchoolManage
{
    public partial class StatisiticMain : Form
    {
        public StatisiticMain()
        {
            InitializeComponent();
        }

        private void StatisiticMain_Load(object sender, EventArgs e)
        {
            // TODO: 这行代码将数据加载到表“mySchoolDataSet6.AVG1”中。您可以根据需要移动或移除它。
            this.aVG1TableAdapter.Fill(this.mySchoolDataSet6.AVG1);


        }

        private void buttonReturn_Click(object sender, EventArgs e)
        {
            this.Close();
            
        }

        private void StatisiticMain_FormClosing(object sender, FormClosingEventArgs e)
        {
            StuGradeMain m2 = new StuGradeMain();
            m2.Show();
        }
    }
}

(12)在主界面点击右上角的“×”即退出系统。

(注:以上页面中的“返回”、“退出”、“取消”、“×”选项均使得页面从当前界面返回到上一界面或上一级界面,并不使程序退出,仅主界面的“×”号可退出系统。)

数据库学生信息管理系统课程设计,c#,数据库,数据库开发,visualstudio,sqlserver

图21:退出系统

以上就是本次数据库课程设计的全部内容啦,欢迎小伙伴们交流心得,批评指正。文章来源地址https://www.toymoban.com/news/detail-800344.html

转载请注明出处,未经同意禁止转载!

到了这里,关于数据库课程设计——学生信息管理系统C#,SQL Sever的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据库原理及应用课程设计--药品存储信息管理系统

    1.1项目提出 1.2.调查使用该药品存储信息数据库的用户的实际需求 1.3 功能需求 1.供应商基本信息模块,完成对供应商基本信息的输入、修改和查询; 2.员工基本信息模块,完成对员工基本情况的输入、修改和查询; 3.药品基本信息模块,完成对药品基本信息的输入、修改

    2024年02月08日
    浏览(43)
  • 【数据库技术课程设计】 电信学院考研信息管理系统 +【Visual FoxPro】

    一 、系统设计背景        二、系统可行性分析 2.1 经济可行性 2.2 技术可行性 2.3 操作可行性 2.4 可行性分析总结 三、软件选择与编程环境 3.1 软件选择 3.2 编程环境 四、系统总体结构设计 五、数据库设计及表链接 5.1 表设计 5.2 表连接 六、信息浏览的实现 6.1 表单设计

    2024年02月04日
    浏览(45)
  • [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能。 简单的包装下毕设应该没问题了。 Python,Mysql,Pycharm的安装本文就不做特别介绍了,有需要的同学请参考如下博文。 Python + Django4 搭建个人博客(二):准备开

    2024年02月03日
    浏览(64)
  • 数据库课程设计-学生选课管理系统(实训报告+答辩ppt+源码+sql文件+打包好的程序)springboot项目-javaweb

    作者:ChenZhen 博客地址:https://www.chenzhen.space/ 版权:本文为博主 ChenZhen 的原创文章,本文版权归作者所有,转载请附上原文出处链接及本声明。 如果对你有帮助,请给一个小小的star⭐ 源码加vx : ChenZhen_7 (实训报告+答辩ppt+源码+sql文件+打包好的程序 无套路 免费获取! 不放

    2024年02月11日
    浏览(71)
  • 学生信息管理系统(数据库)

    要求实现功能: (1)学生、课程、教师等信息的录入和维护,一门课只由一位教师上,一位教师可上多门课 (2)学生进行选课,一学期约20学分 (3)教师在每门课结束后给出学生成绩,不及格则补考后记录补考成绩 (4)能明细查询某学生的选课情况及某课程的选修学生情

    2024年02月03日
    浏览(45)
  • JAVA学生信息管理系统(数据库实现)

    这次的项目是用数据库实现学生的信息管理系统,有三步组成,写项目链接数据库实现相关的操作 开发工具: eclipse、MySQL、navicat、mysql-connector-java-8.0.27     (1)主页面   (2)添加界面   (3)删除界面    (4)修改界面  (5)查找界面 (6)数据库链接   添加Java驱动包

    2024年02月11日
    浏览(45)
  • 学生信息及成绩管理系统(Python+Sqlite)数据库版

    目录 功能模块: 运行功能演示:  具体代码实现过程: 创建sqlite 数据库  Python代码 引入os和sqlite3包: 初始化数据库: 连接数据库: 关闭并提交数据到数据库: 查询数据并显示: 添加并插入数据到数据库: 更新数据到数据库: 删除数据并更新数据库:  导入和导出数据

    2024年02月04日
    浏览(47)
  • 利用java和mysql数据库创建学生信息管理系统

    管理系统的使用可以大大提高我们的工作效率,给我们的生活带来极大的便利,因此我们在学习编程语言的时候大多是要学习和实现一个管理系统的创建的。 学生信息管理系统是进一步推进学生学籍管理规范化、电子化控制和管理学生信息的总要举措。系统针对学校学生信息

    2024年02月04日
    浏览(59)
  • 数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

    目录 1、需求分析 1 1.1 数据需求描述 1 1.2 系统功能需求 3 1.3 其他性能需求 4 2、概念结构设计 4 2.1 局部E-R图 4 2.2 全局E-R图 5 2.3 优化E-R图 6 3、逻辑结构设计 6 3.1 关系模式设计 6 3.2 数据类型定义 6 3.3 关系模式的优化 8 4、物理结构设计 9 4.1 聚簇设计 9 4.2 索引设计 9 4.3 分区设

    2024年02月03日
    浏览(71)
  • 数据库课程设计------书店管理系统

    书店会员管理系统 具体的效果图看博客-----书店管理系统2(https://blog.csdn.net/qq_45981397/article/details/124062654?spm=1001.2014.3001.5502) 需求分析 (1).信息需求 书店的管理人员和员工可以为管理系统添加图书的购买记录和退书记录. 会员可以购买图书以及退书,工作人员对会员的姓名,

    2024年02月04日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包