2024年3月21日发(作者:)

C#综合实验报告

班级:0882052班

学号:14号

姓名:郭斌

指导老师:方芳

南昌航空大学科技学院

一、实验目的

1. 通过完成简单用户需求分析以及数据库的SQL操作具体实现等全过程,把前面的各个

实验更好地综合起来。

2. 进一步理解和掌握教材中的相关内容。

3. 掌握分析和设计一个大型数据库系统的基本思路与方法。

二、 实验要求

1.独立完成该系统的数据库设计。

2.实现数据库的设计,并在Access上调试通过。

3.写出查询、更新SQL语句和执行结果。

4.在前台实现对后台数据库的添加、删除、查询和修改操作。

三、 实验内容

综合前面各章内容设计并调试一学生成绩管理系统,C#作为前台开发工具,Access完成

后台数据库的管理。创建学生成绩管理系统所需的表,实现对学生成绩、课程、学生基本信

息进行录入、修改、删除、查询的功能;其中查询应完成模糊查询和精确查询。

具体如下:

主函数程序:

static class Program

{

///

/// 应用程序的主入口点。

///

[STAThread]

static void Main()

{

VisualStyles();

patibleTextRenderingDefault(false);

(new Form4());

}

1 数据库三张表

2 登录界面与代码

代码:

private void button1_Click(object sender, EventArgs e)

{

try

{

if ( == "")

{

("请输入帐号", "信息提示",

);

}

else if ( == "")

{

("请输入密码","信息提示

",);

}

else if ( == "088205214" &&

== "088205214")

{

Form5 main = new Form5();

();

();

}

else

{

("用户名或者密码错误

", "信息提示", );

}

}

catch (Exception ex)

{

(ng());

}

}

private void Form4_Load(object sender, EventArgs e)

{

rdChar = '*';

}

private void button2_Click(object sender, EventArgs e)

{

();

}

3 进入系统界面与其代码

代码:

private void button1_Click(object sender, EventArgs e)

{

Form1 main = new Form1();

();

();

}

private void button2_Click(object sender, EventArgs e)

{

Form2 main = new Form2();

();

();

}

private void button3_Click(object sender,

{

Form3 main = new Form3();

();

();

}

private void button4_Click(object sender,

{

Form4 main = new Form4();

();

();

}

EventArgs e)

EventArgs e)

}

4 学生系统的操作与代码

1)模糊查找和精确查找

代码:

private void button1_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

if (d)

{

();

mysql = "SELECT * FROM Students WHERE StudentNo

LIKE '21%' ";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = + '%';

OleDbDataReader myreader = eReader();

("学号t 姓名t性别t

生日t 籍贯t 地址");

("-------------------------------------------

---------------------------------");

while (())

(("{0}t{1}t{2}t{3}t{4}t{5}",

myreader[0].ToString(),

myreader[2].ToString(),

myreader[1].ToString(),

myreader[3].ToString(),

myreader[4].ToString(), myreader[5].ToString()));

();

();

}

else if (d)

{

();

mysql = "SELECT * FROM Students WHERE

StudentNo=@no ";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = ;

OleDbDataReader myreader = eReader();

("学号t 姓名t性别t

生日t 籍贯t 地址");

("-------------------------------------------

---------------------------------");

while (())

(("{0}t{1}t{2}t{3}t{4}t{5}",

myreader[0].ToString(),

myreader[2].ToString(),

myreader[1].ToString(),

myreader[3].ToString(),

myreader[4].ToString(), myreader[5].ToString()));

();

();

}

else ("你没有选择查找方式", "信息提

示", );

}

2)修改

代码:

private void button3_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" +

"Data Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "update Students set StudentName='" +

+ " ', Sex='" + + " ' where StudentNo='"

+ + "'";

= "数据修改成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e, "信息提示",

, );

();

}

}

3)添加

代码:

private void button2_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "INSERT INTO Students

VALUES (StudentNo,StudentName,Sex,Birthday,Native,Address)

(@Num,@Name,@Sex,@Birth,@Native,@Address) ";

("@Num", r,

50).Value = ;

("@Name", r,

50).Value = ;

("@Sex", r,

50).Value = ;

("@Birth", r,

50).Value = ;

("@Native",

r, 50).Value = ;

("@Address",

r, 50).Value = ;

= "数据添加成功";

dText = mysql;

tion = myconn;

eNonQuery();

(); //Variant

}

catch (Exception Err)

{

(e,

, );

();

}

}

4)删除

"信息提示",

代码:

private void button4_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

DialogResult Re = ("删除不可复原,继

续删除?", "信息提示", ancel,

on);

if (Re == )

{

try

{

();

mysql = "DELETE FROM Students WHERE

StudentNo=@no ";

("@no",

r, 10).Value = ;

= "数据删除成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e, "信息提示",

, );

();

}

}

}

5 选课表系统操作与代码

1)模糊查询和精确查询

代码:

private void button1_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

if (d)

{

();

mysql = "SELECT * FROM Courses WHERE CourseNo LIKE

'21%' ";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = + '%';

OleDbDataReader myreader = eReader();

("课程号t 课程名t

课程类型t 课程数t 课时t 学分");

("-------------------------------------------

---------------------------------");

while (())

(("{0}

t{1} t{2} t{3} t{4} t{5}",

myreader[0].ToString(),

myreader[2].ToString(),

myreader[1].ToString(),

myreader[3].ToString(),

myreader[4].ToString(), myreader[5].ToString()));

();

();

}

else if (d)

{

();

mysql = "SELECT * FROM Courses WHERE CourseNo=@no

";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = ;

OleDbDataReader myreader = eReader();

("课程号t 课程名t

课程类型t 课程数t 课时t 学分");

("-------------------------------------------

---------------------------------");

while (())

(("{0}

t{1} t{2} t{3} t{4} t{5}",

myreader[0].ToString(),

myreader[2].ToString(),

myreader[1].ToString(),

myreader[3].ToString(),

myreader[4].ToString(), myreader[5].ToString()));

();

();

}

else ("你没有选择查找方式", "信息提示

", );

}

2)修改

代码:

private void button2_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "update Courses set CourseHours='" +

+ " ',Credit='" + + " ' where

CourseNo='" + + "'";

= "数据修改成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e,

, );

();

}

}

3)添加

"信息提示",

代码:

private void button3_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "INSERT INTO Courses

(CourseNo,CourseName,CourseType,OpenTerm,CourseHours,Credit)

VALUES (@No,@Name,@Type,@Term,@Hours,@Credit) ";

("@No", t,

4).Value = 32();

("@Name", r,

50).Value = ;

("@Type", r,

50).Value = ;

("@Term", r,

50).Value = ;

("@Hours", r,

50).Value = ;

("@Credit",

r, 50).Value = ;

= "数据添加成功";

dText = mysql;

tion = myconn;

eNonQuery();

(); //Variant

}

catch (Exception Err)

{

(e, "信息提示",

, );

();

}

}

4)删除

代码:

private void button4_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

DialogResult Re = ("删除不可复原,继

续删除?", "信息提示", ancel,

on);

if (Re == )

{

try

{

();

mysql = "DELETE FROM Courses WHERE

CourseNo=@no ";

("@no",

r, 10).Value = ;

= "数据删除成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e,

, );

();

}

}

}

6 成绩表系统操作与代码

1)模糊查询和精确查询

"信息提示",

代码:

private void button1_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

if (d)

{ ();

mysql = "SELECT * FROM Score WHERE StudentNo LIKE

'21%' ";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = + '%';

OleDbDataReader myreader = eReader();

("学号t 课程代号

t 学分t ");

("-------------------------------------------

---------------------------------");

while (())

(("{0}t{1}

t{2}", myreader[0].ToString(), myreader[1].ToString(),

myreader[2].ToString()));

();

();

}

else if (d)

{

();

mysql = "SELECT * FROM Score WHERE StudentNo=@no

";

dText = mysql;

tion = myconn;

("@no", r,

10).Value = ;

OleDbDataReader myreader = eReader();

("学号t 课程代号 t

学分t");

("-------------------------------------------

---------------------------------");

while (())

(("{0}t{1}

t{2}", myreader[0].ToString(), myreader[1].ToString(),

myreader[2].ToString()));

();

();

}

else ("你没有选择查找方式", "信息提示

", );

}

2)修改

代码:

private void button2_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "update Score set CourseNo='" +

+ " ', Score='" + + " ' where

StudentNo='" + + "'";

= "数据修改成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e,

, );

();

}

}

3)添加

"信息提示",

代码:

private void button4_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source =G:数据库";

tionString = mystr;

try

{

();

mysql = "INSERT INTO Score

(StudentNo,CourseNo,Score) VALUES (@Num,@No,@Score) ";

("@Num", r,

50).Value = ;

("@No", r,

50).Value = ;

("@Score", r,

50).Value = ;

= "数据添加成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

{

(e, "信息提示",

, );

();

}

}

4)删除

代码:

private void button5_Click(object sender, EventArgs e)

{

string mystr, mysql;

OleDbConnection myconn = new OleDbConnection();

OleDbCommand mycmd = new OleDbCommand();

mystr = "Provider = .4.0;" + "Data

Source = G:数据库";

tionString = mystr;

DialogResult Re = ("删除不可复原,继

续删除?", "信息提示", ancel,

on);

if (Re == )

{

try

{

();

mysql = "DELETE FROM

StudentNo=@no ";

("@no",

r, 10).Value = ;

= "数据删除成功";

dText = mysql;

tion = myconn;

eNonQuery();

();

}

catch (Exception Err)

Score WHERE

{

(e, "信息提示",

, );

();

}

}

}

四、详细设计

按照模块来写。需有流程图、界面、核心代码(界面和核心代码如上所述)

1 流程图如下

五、总结