《数据库系统概论》课程设计
实验报告书
姓名: 学号:
专业:软件工程 班级:软093班 学院:计算机
一 概述
1.1.1 问题的提出
随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
1
DP05b_205_215TC005 092-661解决方案 系统概述:通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。基本要求:完成学生、班级、课程表的维护。 完成成绩表的维护、浏览查找 。 按班级、按课程计算平均成绩、最高成绩、最低成绩、及格率。统计某学生、某学期的所有课程的平均成绩。 完成用户管理功能。 完成数据备份与恢复功能,
1.1.2 本课题的意义
通过该课程设计,可以达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境
① Oracle 11G ② C# .net平台
二 需求分析
2.1 系统功能要求设计
此系统实现如下系统功能:
(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
教师管理 用户 验证 登陆失败 登陆成功学生管理退出系统 2.2 系统模块设计 课程管理 成绩查询 成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的
2
DP05b_205_215TC005 092-661解决方案 模块;
2.3 数据字典
数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:
数据库中用到的表: 数据库表名 关系模式名称 备注 Student 学生表 学生学籍信息表 Course 课程表 课程基本信息表 Teach 教师表 教师基本信息 Stu_Cour 选课表 学生选课信息 Score 成绩 选课成绩信息表
Student基本情况数据表,结构如下: 字段名 字段类型 Not Null 说明 Sno Char Primary key 学号 Sname char Not Null 学生姓名 Sdept char 学院 Sclass char 班级 Sage intr 年龄 Ssex char 性别
Teach基本情况数据表,结构如下 字段名 字段类型 Not Null 说明 Tno Char Primary key 教师号 Tname char Not Null 教师姓名 Tsex char 性别 Cno char 外部码 所授课程 Tage int 年龄 Tdept char 学院
Course数据表,结构如下: 字段名 字段类型 约束控制 说明 Cno char 主键(primary key) 课程号 Cname char not null 课程名称 Ctime int not null 课时 3
DP05b_205_215TC005 092-661解决方案
Stu_cour情况数据表,结构如下: 字段名 Cno Sno
Score情况数据表,结构如下: 字段名 Cno Sno score 字段类型 char char int 约束控制 外部键 外部键 说明 课程号 学号 成绩 字段类型 char char 约束控制 外部键 外部键 说明 课程号 学号
三 概念模型设计
由需求分析的结果可知,本系统设计的实体包括:
(1)学生基本信息:学号,姓名,学院,班级,年龄,性别。 (2)课程基本信息: 课程名,课程号,学时。
(3)教师基本信息:教师号,教师姓名,职称,年龄,性别,学院 (4)学院基本信息:学院名、学院号、院长姓名
这些实体间的联系包括:
(1) 每位学生可以学习多门课程,每门课程可供多位学生学习。 (2) 每门课可以由多个老师教,每个老师可以教多门课程
(3) 学生每选一门课就可以得到一个成绩,不选此课就不能取得该课程成绩
由上述分析可得到系统的E—R图:
年龄 地址 系别 学分 学时 4
学号 学生 成绩 选修课程 课程号 DP05b_205_215TC005 092-661解决方案
教授 拥有
学院代码 学院 拥有 教师号 教师 职称 院长名
四 逻辑和物理结构设计
学院名 学院 教师名 性别 4.1由系统E—R图转化而得到的关系模式如下:
(1)学生(学号,姓名,性别,年龄,学院,班级),其主关键字为学号; (2)课程(课程名,课程号,学时),其中主关键字为课程号;
(3)教师(教师号,教师姓名,职称,年龄,性别,学院,所授课程号) (4)选课(课程号,学号)其中主关键字为学号和课程号 (4)成绩(课程号,学号,分数)其中主关键字为学号和课程号。
4.2 确定关系模型的存取方法
在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数
5
DP05b_205_215TC005 092-661解决方案 据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。
4.3 确定数据库的存储结构
确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定系统存储参数的配置。因为该成绩管理系统的数据量小,,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。
(1)创建学生基本信息表: CREATE TABLE Student ( SNO CHAR(5) ,
SNAME CHAR(10) NOT NULL, SDEPT CHAR(2) NOT NULL, SCLASS CHAR(2) NOT NULL, SAGE NUMBER(2), SSEX CHAR(2),
CONSTRAINT SNO_PK PRIMARY KEY(SNO));
2,创建表Course CREATE TABLE Course( CNO CHAR(3),
CNAME VARCHAR2(16) , CTIME NUMBER(3),
CONSTRAINT CNO_PK PRIMARY KEY(CNO) )
3,创建表Teach CREATE TABLE Teach( TNO VARCHAR(6), TNAME VARCHAR(8), TSEX CHAR(2), CNO CHAR(3), TAGE NUMBER(2), TDEPT CHAR(2),
CONSTRAINT TT_PK PRIMARY KEY(TNO),
CONSTRAINT CNO_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) )
4,创建表Stu_cno CREATE TABLE Score(
6
DP05b_205_215TC005 092-661解决方案 SNO CHAR(5), CNO CHAR(3),
CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),
CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO) )
5.创建成绩表
CREATE TABLE Score( SNO CHAR(5), CNO CHAR(3), SCORE NUMBER(5,2),
CONSTRAINT SC_PK PRIMARY KEY(SNO,CNO),
CONSTRAINT SNO_FK FOREIGN KEY(SNO) REFERENCES Student(SNO), CONSTRAINT CNOM_FK FOREIGN KEY(CNO) REFERENCES Course(CNO)
CONSTRAINT Score_FK FOREIGN KEY(SNO,CNO) REFERENCES Stu_cno(SNO,CNO) )
二、插入数据 1,Student
INSERT INTO Student VALUES('96001','马小燕','CS','01',21,'女'); INSERT INTO Student VALUES('96002','黎明','CS','01',18,'男'); INSERT INTO Student VALUES('96003','刘东明','MA','01',18,'男'); INSERT INTO Student VALUES('96004','赵志勇','IS','02',20,'男'); INSERT INTO Student VALUES('97001','马蓉','MA','02',19,'女'); INSERT INTO Student VALUES('97002','李成功','CS','01',20,'男'); INSERT INTO Student VALUES('97003','黎明','IS','03',19,'女'); INSERT INTO Student VALUES('97004','李丽','CS','02',19,'女'); INSERT INTO Student VALUES('96005','司马志明','CS','02',18,'男');
2,Course
INSERT INTO Course VALUES('001','数学分析',144); INSERT INTO Course VALUES('002','普通物理',144); INSERT INTO Course VALUES('003','微机原理',72); INSERT INTO Course VALUES('004','数据结构',72); INSERT INTO Course VALUES('005','操作系统',64); INSERT INTO Course VALUES('006','数据库原理',64); INSERT INTO Course VALUES('007','DB_Design',48); INSERT INTO Course VALUES('008','程序设计',56);
7
DP05b_205_215TC005 092-661解决方案 3,Teach
INSERT INTO Teach VALUES('9401','王成钢','男','004',35,'CS'); INSERT INTO Teach VALUES('9402','李正科','男','003',40,'CS'); INSERT INTO Teach VALUES('9403','严敏','女','001',33,'MA'); INSERT INTO Teach VALUES('9404','赵高','男','004',28,'IS'); INSERT INTO Teach VALUES('9405','李正科','男','003',32,'MA'); INSERT INTO Teach VALUES('9406','李玉兰','女','006',43,'CS'); INSERT INTO Teach VALUES('9407','王成钢','男','004',49,'IS'); INSERT INTO Teach VALUES('9408','马悦','女','008',35,'CS'); INSERT INTO Teach VALUES('9409','王成钢','男','007',48,'CS'); 4,Score
INSERT INTO Score VALUES('96001','001',77.5); INSERT INTO Score VALUES('96001','003',89); INSERT INTO Score VALUES('96001','004',86); INSERT INTO Score VALUES('96001','005',82); INSERT INTO Score VALUES('96002','001',88); INSERT INTO Score VALUES('96002','003',92.5); INSERT INTO Score VALUES('96002','006',90); INSERT INTO Score VALUES('96005','004',92); INSERT INTO Score VALUES('96005','005',90); INSERT INTO Score VALUES('96005','006',89); INSERT INTO Score VALUES('96005','007',76); INSERT INTO Score VALUES('96003','001',69); INSERT INTO Score VALUES('97001','001',96); INSERT INTO Score VALUES('97001','008',95); INSERT INTO Score VALUES('96004','001',87); INSERT INTO Score VALUES('96003','003',91); INSERT INTO Score VALUES('97002','003',91); INSERT INTO Score VALUES('97002','004',''); INSERT INTO Score VALUES('97002','006',92); INSERT INTO Score VALUES('97004','005',90); INSERT INTO Score VALUES('97004','006',85); INSERT INTO Score VALUES('97004','008',75); INSERT INTO Score VALUES('97003','001',59); INSERT INTO Score VALUES('97003','003',58)
五 数据库的实施与维护
5.1 数据库的实施:
此阶段主要任务包括创建数据库,加载初始数据,数据库试运行,数据库的安全性和完整性控制数据库的备份与恢复,数据库性能的监督分析和改仅,数据库的重组和重构等。首先在数据库中建
8
DP05b_205_215TC005 092-661解决方案
立一个学生成绩管理系统数据库,然后新建一个数据源。
部分截图和代码如下:
学生表的增删改查:
9
DP05b_205_215TC005 092-661解决方案
增加学生信息
\\
更新学生信息
10
DP05b_205_215TC005 092-661解决方案
删除学生信息
学生表增加、删除、修改代码(部分)
11
DP05b_205_215TC005 092-661解决方案 using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Data.OracleClient; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace MyProgram {
public partial class Form3 : Form {
private string ConnectionString = \"Data Source=ahut;\" + \"User ID=Scott;Password=123456\"; private OracleConnection conn = null;
private OracleDataAdapter DataAdapter = null; private DataSet dataset = null;
// private OracleCommand command= null;
public Form3() {
InitializeComponent(); }
private void Form3_Load(object sender, EventArgs e) {
conn = new OracleConnection(ConnectionString); showData();
}
private void showData() {
string tname = \"\"; try {
if (conn == null) conn.Open();
DataAdapter = new OracleDataAdapter(\"select * from student\ dataset = new DataSet(); DataAdapter.Fill(dataset);
dataGridView1.DataSource = dataset;
12
DP05b_205_215TC005 092-661解决方案 dataGridView1.DataMember = dataset.Tables[0].ToString(); tname = dataset.Tables[0].ToString(); //先清除所有绑定,然后再重新绑定 textBox1.DataBindings.Clear(); textBox2.DataBindings.Clear(); textBox3.DataBindings.Clear(); textBox4.DataBindings.Clear(); textBox5.DataBindings.Clear(); textBox6.DataBindings.Clear();
textBox1.DataBindings.Add(\"Text\ textBox2.DataBindings.Add(\"Text\ textBox3.DataBindings.Add(\"Text\ textBox4.DataBindings.Add(\"Text\ textBox5.DataBindings.Add(\"Text\ textBox6.DataBindings.Add(\"Text\ }
catch (Exception ex) {
MessageBox.Show(ex.ToString()); } }
private void button1_Click(object sender, EventArgs e) {
string strOracle = \"insert into student values(\"; strOracle += \"'\" + textBox1.Text;//学号 strOracle += \"','\" + textBox2.Text;//姓名 strOracle += \"','\" + textBox3.Text;//学院 strOracle += \"','\" + textBox4.Text;//班级 strOracle += \"',\" + textBox5.Text;//年龄 strOracle += \性别 OracleCommand command = null; try {
command = new OracleCommand(); command.Connection = conn; command.CommandText = strOracle; conn.Open();
int n = command.ExecuteNonQuery();//执行Insert语句 if (n > 0)
MessageBox.Show(\"成功插入数据!\"); }
13
DP05b_205_215TC005 092-661解决方案 catch (Exception ex) {
MessageBox.Show(ex.Message); }
finally {
if (conn != null) conn.Close(); command.Dispose(); }
showData(); }
private void button2_Click(object sender, EventArgs e) {
Form7 f7 = new Form7(); f7.Show();
}
private void button3_Click(object sender, EventArgs e) { try {
OracleCommandBuilder builder = new OracleCommandBuilder(DataAdapter); int n = DataAdapter.Update(dataset, \"Table\");
MessageBox.Show(\"成功更新数据,有\" + n.ToString() + \"行受到更新!\"); }
catch {
MessageBox.Show(\"更新不成功!\"); } }
private void button4_Click(object sender, EventArgs e) {
string curNo = \"\";
if (dataGridView1.Rows.Count <= 1) return;
14
DP05b_205_215TC005 092-661解决方案 int index = dataGridView1.CurrentRow.Index; dataGridView1.Rows[index].Selected = true;
curNo = this.dataGridView1.Rows[index].Cells[0].Value.ToString(); OracleCommand command = null;
string strOracle = \"delete from student where sno='\" + curNo + \"'\";
try {
command = new OracleCommand(); command.Connection = conn; command.CommandText = strOracle; conn.Open();
int n = command.ExecuteNonQuery(); }
catch (Exception ex) {
MessageBox.Show(ex.Message); }
finally {
if (conn != null) conn.Close(); command.Dispose(); }
showData();
MessageBox.Show(\"成功删除一行!\"); } } }
选择检索条件(学生表查询)
15
DP05b_205_215TC005 092-661解决方案
学生表查询代码
using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Data.OracleClient; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace MyProgram {
public partial class Form7 : Form {
private string ConnectionString = \"Data Source=ahut;\" + \"User ID=Scott;Password=123456\"; private OracleConnection conn = null;
private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; private OracleCommand cmd = null; public Form7() {
InitializeComponent(); }
private void Form7_Load(object sender, EventArgs e) { try {
conn = new OracleConnection(ConnectionString); conn.Open();
16
DP05b_205_215TC005 092-661解决方案 DataAdapter = new OracleDataAdapter(); dataset = new DataSet(); cmd = new OracleCommand(); cmd.Connection = conn;
cmd.CommandText = \"SELECT * from student\"; DataAdapter.SelectCommand = cmd; DataAdapter.Fill(dataset, \"t1\"); comboBox1.Items.Clear();
for (int i = 0; i < dataset.Tables[\"t1\"].Columns.Count; i++)
comboBox1.Items.Add(dataset.Tables[\"t1\"].Columns[i].ToString()); dataset.Clear();
comboBox2.Items.Add(\"=\"); comboBox2.Items.Add(\"<\"); comboBox2.Items.Add(\">\"); comboBox2.Items.Add(\"like\"); }
catch (Exception ex) {
MessageBox.Show(ex.Message); }
}
private void button1_Click(object sender, EventArgs e) {
string tb1 = textBox1.Text; if (comboBox2.Text == \"like\")
tb1 = \"%\" + textBox1.Text + \"%\"; string strOracle = \"select * from student where\";
strOracle += \" \" + comboBox1.Text + \" \" + comboBox2.Text + \" \" + \"'\" + tb1 + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
17
DP05b_205_215TC005 092-661解决方案
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } } } }
教师表信息
成绩表信息
18
DP05b_205_215TC005 092-661解决方案
学生成绩检索(单表操作)
按照课程检索最高分、最低分和平均分
19
DP05b_205_215TC005 092-661解决方案
按照课程检索选课总数
按照个人检索最高分、最低分和平均分
按照班级检索最高分、最低分和平均分
20
DP05b_205_215TC005 092-661解决方案
按照班级检索选课总数
成绩表查询代码
#include \"stdafx.h\" using System;
using System.Collections.Generic; using System.ComponentModel; using System.Data;
using System.Data.OracleClient; using System.Drawing; using System.Linq; using System.Text;
using System.Windows.Forms;
namespace MyProgram {
public partial class Form9 : Form
21
DP05b_205_215TC005 092-661解决方案 {
private string ConnectionString = \"Data Source=ahut;\" + \"User ID=Scott;Password=123456\"; private OracleConnection conn = null;
private OracleDataAdapter DataAdapter = null; private DataSet dataset = null; private OracleCommand cmd = null;
public Form9() {
InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) {
string tb1 = textBox1.Text; if (comboBox2.Text == \"like\")
tb1 = \"%\" + textBox1.Text + \"%\"; string strOracle = \"select * from score where\";
strOracle += \" \" + comboBox1.Text + \" \" + comboBox2.Text + \" \" + \"'\" + tb1 + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } }
private void Form9_Load(object sender, EventArgs e)
22
DP05b_205_215TC005 092-661解决方案 {
try {
conn = new OracleConnection(ConnectionString); conn.Open();
DataAdapter = new OracleDataAdapter(); dataset = new DataSet(); cmd = new OracleCommand(); cmd.Connection = conn;
cmd.CommandText = \"SELECT * from score\"; DataAdapter.SelectCommand = cmd; DataAdapter.Fill(dataset, \"t1\"); comboBox1.Items.Clear();
for (int i = 0; i < dataset.Tables[\"t1\"].Columns.Count; i++)
comboBox1.Items.Add(dataset.Tables[\"t1\"].Columns[i].ToString()); dataset.Clear();
comboBox2.Items.Add(\"=\"); comboBox2.Items.Add(\"<\"); comboBox2.Items.Add(\">\"); comboBox2.Items.Add(\"like\");
comboBox3.Items.Add(\"Max(score)\"); comboBox3.Items.Add(\"Min(score)\"); comboBox3.Items.Add(\"avg(score)\");
comboBox4.Items.Add(\"001\"); comboBox4.Items.Add(\"002\"); comboBox4.Items.Add(\"003\"); comboBox4.Items.Add(\"004\"); comboBox4.Items.Add(\"005\"); comboBox4.Items.Add(\"006\"); comboBox4.Items.Add(\"007\"); comboBox4.Items.Add(\"008\");
comboBox5.Items.Add(\"Max(score)\"); comboBox5.Items.Add(\"Min(score)\"); comboBox5.Items.Add(\"avg(score)\");
comboBox6.Items.Add(\"CS\"); comboBox6.Items.Add(\"MA\");
23
DP05b_205_215TC005 092-661解决方案 comboBox6.Items.Add(\"IS\");
comboBox7.Items.Add(\"01\"); comboBox7.Items.Add(\"02\"); comboBox7.Items.Add(\"03\");
comboBox8.Items.Add(\"Max(score)\"); comboBox8.Items.Add(\"Min(score)\"); comboBox8.Items.Add(\"avg(score)\");
comboBox9.Items.Add(\"96001\"); comboBox9.Items.Add(\"96002\"); comboBox9.Items.Add(\"96003\"); comboBox9.Items.Add(\"96004\"); comboBox9.Items.Add(\"96005\"); comboBox9.Items.Add(\"97001\"); comboBox9.Items.Add(\"97002\"); comboBox9.Items.Add(\"97003\"); comboBox9.Items.Add(\"97004\");
}
catch (Exception ex) {
MessageBox.Show(ex.Message); }
}
private void button2_Click(object sender, EventArgs e) {
string strOracle = \"select Max(score),Min(score),avg(score) \"; strOracle += \" from score where cno ='\" + comboBox4.Text + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\";
24
DP05b_205_215TC005 092-661解决方案 }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } }
private void button4_Click(object sender, EventArgs e) {
string strOracle = \"select Max(score),Min(score),avg(score) \";
strOracle += \" from score where sno in(select sno from student where sdept='\" + comboBox6.Text + \"' and sclass ='\" + comboBox7.Text + \"')\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } }
private void button3_Click(object sender, EventArgs e) {
25
DP05b_205_215TC005 092-661解决方案 string strOracle = \"select count(*) from score where cno='\"; strOracle += comboBox4.Text + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } }
private void button5_Click(object sender, EventArgs e) {
string strOracle = \"select count(*) from score where sno in(select sno from student where sdept='\"; strOracle += comboBox6.Text + \"' and sclass ='\" + comboBox7.Text + \"')\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
26
DP05b_205_215TC005 092-661解决方案
finally {
if (conn != null) conn.Close(); }
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) { }
private void comboBox7_SelectedIndexChanged(object sender, EventArgs e) { }
private void comboBox3_SelectedIndexChanged(object sender, EventArgs e) { }
private void comboBox4_SelectedIndexChanged(object sender, EventArgs e) { }
private void textBox2_TextChanged(object sender, EventArgs e) { }
private void comboBox8_SelectedIndexChanged(object sender, EventArgs e) { }
private void button7_Click(object sender, EventArgs e) {
string strOracle = \"select count(*) from score where sno='\"; strOracle += comboBox9.Text + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
27
DP05b_205_215TC005 092-661解决方案 DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null) conn.Close(); } }
private void comboBox9_SelectedIndexChanged(object sender, EventArgs e) { }
private void button6_Click(object sender, EventArgs e) {
string strOracle = \"select Max(score),Min(score),avg(score) \"; strOracle += \" from score where sno ='\" + comboBox9.Text + \"'\";
try {
cmd.CommandText = strOracle; DataAdapter.SelectCommand = cmd; dataset.Clear();
DataAdapter.Fill(dataset, \"t1\"); dataGridView1.DataSource = dataset; dataGridView1.DataMember = \"t1\"; }
catch {
MessageBox.Show(\"请正确设置检索条件!\"); }
finally {
if (conn != null)
28
DP05b_205_215TC005 092-661解决方案 conn.Close(); } }
private void comboBox5_SelectedIndexChanged(object sender, EventArgs e) { }
private void label4_Click(object sender, EventArgs e) { } } }
5.3数据库的维护
当试运行数据库合格后,数据库开发设计的工作就基本完成了,接下来就是正式运行中的调试,应为该系统比较简单,数据量小,数据库中几乎不会发生什么大的变化,但是还是需要做好数据的备份,在Oracle中我们可以利用备份数据库的功能对已经设计好的数据做备份,如果数据库受到破坏或系统故障,我们便可轻松的利用备份文件恢复数据库的数据。当然也可以利用其他各种方法进行数据维护。
六 总结
通过这次课程设计,我学到了很多知识。以前对于数据库的编程从来都没有接触过,所以刚开始的时候感觉比较难,奋斗了一周多还不知道该从何入手。后来经过自己的努力,以及参考了一些资料,终于把数据库连接上了。由于时间比较短,随意就只做了个简单一点的学生成绩管理系统。
虽然做的效果不怎么样,但这是我自己亲手做的,还是有一定的成就感的,毕竟自己的努力没有白费,我也学会了数据库编程的一些基本操作,实验中出现的问题通过上网、查资料我也都基本上解决了。
这次课程设计也增加了我的编程经验,使我的编程能力也得到了提高。
29
DP05b_205_215TC005 092-661解决方案 参考文献
1、《Oracle PL/SQL宝典》 秦婧, 刘存勇, 张起栋编著 电子工业出版社 2011 2、《Oracle数据库基础及应用》单德华主编 科学出版社 2011 3、《Oracle SQL高级编程》(美)莫顿著 人民邮电出版社 2011.11
4、《Oracle安全实战:开发安全的数据库与中间件环境》(美) David C. Knox, Scott G. Gaetjen等著清华大学出版社 2011
5、《Oracle Database 11g RMAN备份与恢复》(美) Robert G.Freeman, (美) Matthew Hart著 清华大学出版社 2011
6、《Oracle Database 11g PL/SQL编程实战》(美) Michael McLaughlin, (美) John M. Harper著 清华大学出版社 2011
7、《C#程序设计简明教程》 陈佳雯,胡声丹主编 北京:电子工业出版社,2011-10-1 8、《C#典型模块与项目实战大全 》丁士锋编著 清华大学出版社 2011.10
9、《C#开发实战1200例》王小科, 王军等编著 北京:清华大学出版社,2011 鞠躬尽瘁,死而后已。——诸葛亮
30
因篇幅问题不能全部显示,请点此查看更多更全内容