苏州科技学院
电子与信息工程学院
《数据库原理课程设计》报告
学号1330107131
姓名季雯雅
班级计算机1321
日期:2017年12月
1、 任务与要求:学校运动会管理制度
一。初始化输入:n—参与部门,m—男子项目数,w—女子项目数;
各项目的排名方法如下:
前5名:第一名得7分,第二名得5分,第三名得3分,第四名得2分,第五名得1分;
前三名:第一名得5分,第二名得3分,第三名得2分;
自定义:每个等级的权重由用户指定。
2。该程序提醒用户填写比赛成绩,输入各项目获奖运动员信息。
三。记录完所有信息后,用户可以查询各部门的比赛结果,查看参赛部门和比赛项目等信息。
二、数据库设计:(要求叙述数据库设计的过程,画出e-r图,列出数据库中的表名称及结构,并说明表间的关系)。
学校运动会管理主要包括学生信息,属性包括姓名、学号、性别、部门、参与项目、排名。这是数据库关系模式。
e-r图:
学生信息表:主要存储学生的基本信息。结构和说明见表1。
表1字段类型含义
姓名char(20姓名
学号char(20学号,主键
性别char(20性别
院系char(20院系
参加项目char(20参加项目
名次char(20名次
数据库名为“student”,表名为“学生信息”。学生id被设置为主键,所有的都被设置为char类型。
3、 实现的功能及相应的界口和**:
一。数据库连接的实现
首先实现数据库的连接,**如下:
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";
conn.open();
conn.close();
采用连接数据库字符串连接数据库,实例化数据适配器对象,用查询结果填充数据集,在gridview里显示数据集的内容。
2、功能实现
主要**如下:
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";
conn.open();
string sql0 = "insert into student values('" + textbox1.texttextbox2.texttextbox3.
texttextbox4.texttextbox5.texttextbox6。
text + "')";
sql***mand sqlcmd0 = new sql***mand(sql0, conn);
sqlcmd0.executenonquery();
conn.close();
3、查询功能
①按学号查询
图2 查询初始界面
控件下拉列表,按钮,网格视图。dropdownlist的项里我把所有学生的信息全添加到它的可选项里,用dropdownlist.selectedvalue获取选择的学号,单击查询按钮后,在gridview里会显示查询结果。
在查询按钮下的**里写了连接数据库的语句,查询的sql语句,实例化数据适配器对象,用查询结果填充数据集,再把数据集的内容显示到gridview里。
主要**如下:
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";
conn.open();
sqldataadapter da = new sqldataadapter();
dataset ds = new dataset();
sql***mand sqlscmd = new sql***mand("select* from student");
= conn;
da.select***mand=sqlscmd;
da.fill(ds, "grade1");
gridview1.datasource = ds.tables["grade1"];
gridview1.databind();
conn.close();
conn.dispose();
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";
conn.open();
sqldataadapter da = new sqldataadapter();
dataset ds = new dataset();
sql***mand sqlscmd = new sql***mand("select*from student where 学号='"+s1+"'");
= conn;
da.select***mand=sqlscmd;
da.fill(ds, "grade1");
gridview2.datasource = ds.tables["grade1"];
gridview2.databind();
conn.close();
conn.dispose();
图3所有查询结果界面
图4按学号查询结果界面
②按名次查询
用dropdownlist.selectedvalue获取前五名以及前三名的学生的学号,单击显示按钮后,在gridview里会显示查询的结果。在查询按钮下的**里写了连接数据库的语句,查询的sql语句,实例化数据适配器对象,用查询结果填充数据集,再把数据集的内容显示到gridview里。
主要**如下:
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";
conn.open();
sqldataadapter da = new sqldataadapter();
dataset ds = new dataset();
sql***mand sqlscmd = new sql***mand("select top 5 * from student order by 名次 desc");
= conn;
da.select***mand=sqlscmd;
da.fill(ds, "grade1");
gridview1.datasource = ds.tables["grade1"];
gridview1.databind();
conn.close();
conn.dispose();
sqlconnection conn = new sqlconnection();
= "data source=pc-20170301izlt\sqlexpress;initial catalog =123;user id=123;password=123";