赞
踩
目录
开发平台:Microsoft Visual Studio 2013
开发环境:微软在Builder 2013开发者大会上发布了Visual Studio 2013预览版,并且发布其程序组件库.NET 4.5.1的预览版,该软件已于北京时间2013年11月13日23:00时正式发布。Visual Studio 2013 预览版以 Visual Studio 2012 和后续的Microsoft Visual Studio 更新中的进展为基础构建而成,为开发团队提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波Windows 平台创新 (Windows 8.1) 的新式应用程序,同时在所有 Microsoft 平台上支持多种设备和服务。
分析系统的数据需求,用数据字典和数据流图描述系统的数据需求,一般要求有2级(初级和详细级)数据流图,并确定系统开发边界。
系统功能框架介绍,处理模块描述。
管理员
学生
教师
1.3 其他性能需求
(1)用户输入出错时,有错误提示。
(2)给管理员,教师,学生不同的权限,提高数据安全性;
(3)创建触发器,存储过程,防止数据不一致;
画出局部的E-R图,进一步进行解释说明。
合并成全局的E-R图,5个数据类别之间存在6个关系。
因为本次的E-R已经符合了要求,这里就不需要优化了。
教师teachers(教师编号,教师姓名,教师性别,教师年龄,教师职称,联系电话)
专业major(专业编号,专业名称)
班级class(班级编号,班级名称,专业编号)
学生students(学号,姓名,性别,年龄,地区,已修学分,班级编号)
课程course(课程编号,课程名称,课程学时,教师姓名,课程学期,考核方式,学分)
开设 class-course(课程编号,班级编号)
上课 teacher-class(教师编号,班级编号)
授课 teacher-course(教师编号,课程编号)
成绩报告 reports (学号,课程编号,学期,成绩,教师姓名)
管理员账号administer-account(管理员账号,管理员密码)
教师账号Teachers-account(教师账号,教师密码)
学生账号students-account(学生账号,学生密码)
表1 Teacher表
数据项名 | 数据类型 | 长度 | 完整性约束 |
教师编号 | char | 10 | 主键 |
教师姓名 | char | 10 | |
教师性别 | char | 5 | |
教师年龄 | int | ||
职称 | char | 10 | |
联系电话 | char | 20 |
表2 Major表
数据项名 | 数据类型 | 长度 | 完整性约束 |
专业编号 | char | 10 | 主键 |
专业名称 | char | 10 |
表3 class表
数据项名 | 数据类型 | 长度 | 完整性约束 |
班级编号 | char | 10 | 主键 |
班级名称 | char | 10 | |
专业编号 | char | 10 | 外键 |
表4 students表
数据项名 | 数据类型 | 长度 | 完整性约束 |
学号 | char | 12 | 主键 |
姓名 | char | 10 | |
性别 | char | 5 | |
年龄 | int | ||
生源所在地 | char | 20 | |
已修学分 | float | ||
班级编号 | char | 10 | 外键 |
表5 courses表
数据项名 | 数据类型 | 长度 | 完整性约束 |
课程编号 | char | 10 | 主键 |
课程名称 | char | 10 | |
教师姓名 | char | 10 | |
课程学期 | char | 20 | |
课程学时 | int | >0 | |
考核方式 | char | 5 | |
学分 | float | >0 |
表6 class-course表
数据项名 | 数据类型 | 长度 | 完整性约束 | |
班级编号 | char | 10 | 主键 | 外键 |
课程编号 | char | 10 | 外键 |
表7 teacher-class表
数据项名 | 数据类型 | 长度 | 完整性约束 | |
教师编号 | char | 10 | 主键 | 外键 |
班级编号 | char | 10 | 外键 |
表8 teacher-course表
数据项名 | 数据类型 | 长度 | 完整性约束 | |
教师编号 | char | 10 | 主键 | 外键 |
课程编号 | char | 10 | 外键 |
表9 reports表
数据项名 | 数据类型 | 长度 | 完整性约束 | |
学号 | char | 12 | 主键 | 外键 |
课程编号 | char | 10 | 外键 | |
学期 | char | 10 | ||
成绩 | int | |||
教师姓名 | char | 10 |
表10 Teacher-account表
数据项名 | 数据类型 | 长度 | 完整性约束 |
教师编号 | char | 10 | 主键 |
教师密码 | char | 10 |
表11 Admin-account表
数据项名 | 数据类型 | 长度 | 完整性约束 |
管理员编号 | char | 10 | 主键 |
管理员密码 | char | 10 |
表12 student-account表
数据项名 | 数据类型 | 长度 | 完整性约束 |
学生编号 | char | 12 | 主键 |
学生密码 | char | 10 |
该关系模式已经满足规范化需求,这里不进行规范化处理。
教师Teacher(教师编号)
课程Course(课程编号)
学生Students(学生编号,班级编号)
班级Class(班级编号)
原因:这几张表都是实体表,同时聚簇中的属性都是主键或是外键,且被访问次数高,而其他表或者这些表上的其他属性被访问次数较低,没有考虑聚簇的必要。
原则:
1基本表中该属性访问次数较多
2基本表中某属性列重复率较高
3基本表中某属性列的值修改很少,或者增加和删除元组次数较少
建立索引的一般规则:
所以我们建了这些索引:
(1)
教师表Xum_Teachers18 索引:(教师编号 xm_Tno18)
create unique index Tea_Tno on Xum_Teachers18(xm_Tno18)
(2)
课程表Xum_Courses18 索引:(课程编号xm_Cno18)
create unique index Cour_Cno on Xum_Courses18(xm_Cno18)
(3)
班级表 Xum_Class18 索引:(班级编号 xm_CLno18, 专业编号xm_Mno18)
create unique index Mno_CLno on Xum_Class18(xm_CLno18,xm_Mno18)
(4)
学生表Xum_Students18 索引:(学生学号xm_Sno18,班级编号xm_CLno18)
create unique index CLno_Sno on Xum_Students18(xm_Sno18,xm_CLno18)
(5)
成绩报告表Xum_Reports18 索引:(学生编号xm_Sno18 ,课程编号xm_Cno18)
create unique index Cno_Sno on Xum_Reports18(xm_Sno18,xm_Cno18)
(6)
专业表 xm_Cno18 索引:(专业编号xm_Mno18)
create unique index Majo_Mno on Xum_Majors18(xm_Mno18)
磁盘分区设计的一般原则:
1减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。
2分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。
3保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。
实际例子有将关系和索引放在不同磁盘上,查询时两个磁盘同时运行提高物理I/O效率。
不过考虑到本次课题数据量有限,暂不考虑分区设计。
图10 建立教师表
- create table Xum_Teachers18 (
- xm_Tno18 char(10) primary key,
- xm_Tname18 char(10),
- xm_Tsex18 char(5),
- xm_Tage18 int,
- xm_Tpos18 char(10),
- xm_Tpho18 char(20)
-
- )
(2)专业表建立Xum_Majors18
- create table Xum_Majors18(
- xm_Mno18 char(10) primary key,
- xm_Mname18 char(10)
- )
(3)班级表建立Xum_Class18
- create table Xum_Class18(
-
- xm_Clno18 char(10) primary key,
- xm_Clname char(10),
- xm_Mno18 char(10)
- constraint Major_Class foreign key(xm_Mno18) references Xum_Majors18
- )
(4)学生表Xum_Students18
- create table Xum_Students18(
- xm_Sno18 char(12) primary key,
- xm_Sname18 char(10),
- xm_Ssex18 char(5),
- xm_Sage18 int,
- xm_Sorig18 char(20),
- xm_Ssum18 float,
- xm_Clno18 char(10)
- constraint Class_Student foreign key(xm_Clno18) references Xum_Class18
- )
(5)课程表 Xum_Courses18
-
- create table Xum_Courses18(
- xm_Cno18 char(10) primary key,
- xm_Cname18 char(10),
- xm_Tname18 char(10),
- xm_Cdate18 char(20),
- xm_Cway18 char(5),
- xm_Ccredit18 float check(xm_Ccredit18>0),
- xm_Chour18 int check(xm_Chour18>0)
-
- )
(6)授课表 Xum_Tea_Cour18
- create table Xum_Tea_Cour18(
- xm_Tno18 char(10),
- xm_Cno18 char(10),
- primary key(xm_Tno18,xm_Cno18),
- constraint teacher_course foreign key(xm_Tno18) references Xum_Teachers18,
- constraint tea_cour foreign key(xm_Cno18) references Xum_Courses18
-
- )
(7)班级上课表Xum_Class_Cour18
-
- create table Xum_Class_Cour18(
- xm_Clno18 char(10),
- xm_Cno18 char(10),
- primary key(xm_Clno18,xm_Cno18),
- constraint class_course foreign key(xm_Clno18) references Xum_Class18,
- constraint clas_cour foreign key(xm_Cno18) references Xum_Courses18
-
- )
(8)教师任课表Xum_Teac_Class18
-
- create table Xum_Teac_Class18(
- xm_Tno18 char(10),
- xm_Clno18 char(10),
- primary key(xm_Tno18,xm_Clno18),
- constraint tea_class foreign key(xm_Tno18) references Xum_Teachers18,
- constraint teach_class foreign key(xm_Clno18) references Xum_Class18
- )
(9)成绩表Xum_Reports18
-
- create table Xum_Reports18(
-
- xm_Cno18 char(10),
- xm_Sno18 char(12),
- xm_Score18 float,
- xm_date char(10),
- xm_Tname18 char(10),
- primary key(xm_Cno18,xm_Sno18),
- constraint cour foreign key(xm_Cno18) references Xum_Courses18,
- constraint stude foreign key(xm_Sno18) references Xum_Students18
-
- )
(10)管理员账号密码表 (11)学生账号密码表(12)教师账号密码表
-
- create table Students_account18(
- xm_Sno18 char(12) primary key,
- xm_Skey18 char(10)
-
- )
-
- create table Teachers_account18(
- xm_Tno18 char(12) primary key,
- xm_Tkey18 char(10)
-
- )
- create table Admin_account18(
- xm_Ano18 char(12) primary key,
- xm_Akey18 char(10)
-
- )
(13)数据库表预览
(1)学生成绩
- create view 学生成绩统计
- as
- (select Xum_Students18.xm_Sno18,Xum_Students18.xm_Sname18,
- Xum_Courses18.xm_Cname18,Xum_Class18.xm_Clname,
- Xum_Reports18.xm_Tname18,Xum_Courses18.xm_Ccredit18,
- Xum_Courses18.xm_Cdate18,Xum_Reports18.xm_Score18
-
- from Xum_Reports18,Xum_Students18,Xum_Courses18,Xum_Class18
- where Xum_Students18.xm_Sno18=Xum_Reports18.xm_Sno18
- and Xum_Reports18.xm_Cno18=Xum_Courses18.xm_Cno18
- and Xum_Class18.xm_Clno18=Xum_Students18.xm_Clno18
- )
(2)课程平均成绩
-
- create view 每门平均成绩
- as(
- select xm_Cno18,avg(xm_Score18)平均分
- from Xum_Reports18
- group by xm_Cno18
-
-
- )
(3)课程和学分统计
- create view 课程和学分统计
- as
- (
- select xm_Sno18,xm_Cname18,xm_Ccredit18
- from 学生成绩统计
- )
(4)教师课表
-
- create view 教师课表
- as(
- select xm_Tno18,Xum_Teachers18.xm_Tname18,xm_Cno18,xm_Cname18,
- xm_Ccredit18,xm_Chour18
- from Xum_Teachers18,Xum_Courses18
- where Xum_Teachers18.xm_Tname18=Xum_Courses18.xm_Tname18
- )
(5)班级课表
-
- create view 班级课表
- as
- (
- select Xum_Class18.xm_Clno18,xm_Clname,Xum_Courses18.xm_Cno18,
- xm_Cname18,xm_Cdate18,xm_Ccredit18,xm_Chour18
- from Xum_Class18,Xum_Courses18,Xum_Class_Cour18
- where Xum_Class18.xm_Clno18=Xum_Class_Cour18.xm_Clno18
- and Xum_Class_Cour18.xm_Cno18=Xum_Courses18.xm_Cno18
- )
(6)生源地人员统计
-
- create view 生源地人员统计
- as
- (select xm_Sorig18,count(xm_Sno18)数量
- from Xum_Students18
- group by xm_Sorig18
- )
(7)教师课程成绩
-
- create view 教师课程成绩
- as
- (
- select xm_Tno18,Xum_Teachers18.xm_Tname18,xm_Cno18,xm_Sno18,xm_Score18
- from Xum_Teachers18,Xum_Reports18
- where Xum_Teachers18.xm_Tname18=Xum_Reports18.xm_Tname18
-
-
- )
(8)教师与学生成绩
(9)视图预览
- create unique index Tea_Tno on Xum_Teachers18(xm_Tno18)
- create unique index Cour_Cno on Xum_Courses18(xm_Cno18)
- create unique index Mno_CLno on Xum_Class18(xm_CLno18,xm_Mno18)
- create unique index Majo_Mno on Xum_Majors18(xm_Mno18)
- create unique index CLno_Sno on Xum_Students18(xm_Sno18,xm_CLno18)
- create unique index Cno_Sno on Xum_Reports18(xm_Sno18,xm_Cno18)
(1)教师删除(删除一个教师时,与教师相关的记录全都删除)
这里漏写了删除教师账号信息 如果运行出错了 可以参考“学生删除“代码 改写触发器
- create trigger 教师删除18
- on Xum_Teachers18
- for delete
- as
- delete xm_Tno18
- where Xum_Tea_Cour18.xm_Tno18=(select xm_Tno18 from deleted)
- and Xum_Teac_Class18.xm_Tno18=(select xm_Tno18 from deleted)
-
(2)学生删除(删除一个学生时,与该学生相关的记录全都删除
- create trigger 学生删除18
- on Xum_Students18
- for delete
- as
- begin
- delete from Xum_Reports18
- where Xum_Reports18.xm_Sno18 in (select xm_Sno18 from deleted)
- delete from Students_account18
- where Students_account18.xm_Sno18 in (select xm_Sno18 from deleted)
- end
(3)学生统计(提交成绩时,将》=60的成绩记为合格,同时加上该课程学分)
-
- create trigger 学分统计18 on Xum_Reports18
- for insert
- as
- update Xum_Students18
- set xm_Ssum18=(
- select sum(xm_Ccredit18)
- from Xum_Courses18
- where xm_Cno18 in
- (
- select xm_Cno18
- from Xum_Reports18
- where xm_Score18>=60
- and Xum_Reports18.xm_Sno18 in
- (select xm_Sno18
- from inserted)
-
- )
- )
- where Xum_Students18.xm_Sno18 in
- (
- select xm_Sno18
- from inserted
- )
-
(4)教师更新
-
- create trigger 教师更新
- on Xum_Teachers18
- for update
- as
- if update(xm_Tno18)
- begin
- update Xum_Tea_Cour18
- set xm_Tno18=i.xm_Tno18
- from deleted d,inserted i ,Xum_Tea_Cour18 t
- where t.xm_Tno18=d.xm_Tno18
- end
-
- begin
- update Xum_Teac_Class18
- set xm_Tno18=i.xm_Tno18
- from deleted d,inserted i,Xum_Teac_Class18 c
- where c.xm_Tno18=d.xm_Tno18
- end
(5)学生添加 自动注册新用户 默认密码12345
-
- create trigger 插入创建学生新用户18
- on Xum_Students18
- for insert
- as
- declare @sno char(10)
- begin
- select @sno=xm_Sno18 from inserted
- insert into Students_account18
- values(@sno,'12345')
-
-
- end
(6)教师添加 自动注册新用户 默认密码12345
- create trigger 插入创建教师新用户18
- on Xum_Teachers18
- for insert
- as
- declare @tno char(10)
- begin
- select @tno=xm_Tno18 from inserted
- insert into Teachers_account18
- values(@tno,'12345')
-
-
- end
5.5 建存储过程
(1)插入新学生
-
- create procedure pro_插入新学生
- @sno char(12),
- @sname char(10),
- @ssex char(5),
- @sage int,
- @sorig char(20),
- @ssum float,
- @clno char(10)
- as
- insert Xum_Students18(xm_Sno18,xm_Sname18,xm_Ssex18,xm_Sage18
- ,xm_Sorig18,xm_Ssum18,xm_Clno18)
- values(@sno,@sname,@ssex,@sage,@sorig,@ssum,@clno)
- select *
- from Xum_Students18
- go
(2)自动算学分
-
- create procedure pro_输入成绩自动生成学分
- @sno char(12),
- @cno char(10),
- @cname char(10),
- @cdate char(10),
- @score int,
- @tname char(10),
- @credit float
-
- as
- begin
- insert into pro_选修
- values(@sno,@cno,@score)
- update Xum_Students18
- set xm_Ssum18=xm_Ssum18+@credit
- where Xum_Students18.xm_Sno18=@sno
- end
Visual studio 2013 + SQL server 2014
Win10系统
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Data;
- using System.Data.SqlClient;
- using System.Windows.Forms;
-
- namespace WindowsFormsApplication1
- {
- class sqlConnect
- {
- public SqlConnection conn = null;
- public sqlConnect()
- {
- if (conn == null)
- {
- string connectString = "Data Source =LAPTOP-FPCD1SM8\\SQL2014; database =XumMIS18; " +
- "Integrated Security = True";
- conn = new SqlConnection(connectString);
- if (conn.State == ConnectionState.Closed) conn.Open();
-
- }
- }
- public void closeConnect()
- {
- if (conn.State == ConnectionState.Closed) conn.Close();
- }
- public DataSet Getds(string sql)
- {
- if (conn.State == ConnectionState.Closed) conn.Open();
- DataSet ds = new DataSet();
- SqlDataAdapter da = new SqlDataAdapter(sql, conn);
- da.Fill(ds);
- conn.Close();
-
- return ds;
- }
-
- public int OperateData(string sql)
- {
- if (conn.State == ConnectionState.Closed) conn.Open();
- SqlCommand sqlcom = new SqlCommand();
- sqlcom.CommandText = sql;
- sqlcom.CommandType = CommandType.Text;
- sqlcom.Connection = conn;
- int x = sqlcom.ExecuteNonQuery();
- conn.Close();
- return x;
-
- }
- public DataSet BindDataGridView(DataGridView dgv, string sql)
- {
- if (conn.State == ConnectionState.Closed) conn.Open();
- SqlDataAdapter da = new SqlDataAdapter(sql, conn);
- DataSet ds = new DataSet();
- da.Fill(ds);
- dgv.DataSource = ds.Tables[0];
- return ds;
-
-
- }
- }
- }
(1)登录界面如图所示
①登入异常
(输入的密码、账号错误,提示框报错)
图43 账号或密码错误
②输入不完整
③验证成功
(2)进入学生界面
①个人信息查询
②成绩查询,选择学年查询
③班级课表查询
④学生课表和学分查询
⑤修改密码
输入为空
原密码输入错误(原密码为123456)
两次新密码验证不通过
修改成功
(3)教师界面
①教师个人信息查询
②教师任课查询
③所任课程平均成绩
④查询选择该课程学生的分数排名(分数按降序)
⑤教师提交学生成绩 添加成绩(课程里只有这个老师教的课)
确定课程出现选择该课程学生的信息
删除信息
修改成绩(只能修改成绩,只有最后一行可编辑,将第二位同学 99改为98)
⑥修改密码和学生界面类似
(4)管理员界面
①教师管理
实现插入编号为T10的教师信息,同时查询编号为T10老师的信息
插入的教室信息(T10,舒克,男,46,教授,3765874563)查询T10老师的信息
教师删除(删除为T10教师的信息)
修改T09教师的年龄(36-->45)
②学生界面
可以实现学生信息的插入、删除、修改以及查询和教师界面类似,这里不做过大介绍
③管理员生源统计
④管理员修改密码与学生老师的相同
⑤管理员重置教师、学生密码
为防止有教师、学生忘记密码,这里提供密码重置功能。
(1)因为从来没有写过C#代码,刚开始的时候,对这门语言非常陌生,不知道从何下,所以,我的界面模块都是按照书本后面的实例代码写的,写的时候其实心里还是非常模糊,不知道怎么实现代码和数据库的嵌入,花了很多时间在探索上。但是C#是一门非常适合做界面的语言,它继承了C语言和java语言的优点,同时界面上控件的安放十分简单上手。
(2)在系统需求分析完成以后,根据用户需求设计概念结构的时候遇到了数据冗余等多种问题,经过慢慢的分解关系最终得到了相对来说还比较完善的概念结构,通过ER图表示出来。
(3)设计数据库的时候,原本是没有想到触发器和存储过程的设计,但是当界面设计完成的差不多,要初步测试界面功能时,才发现数据库的设计存在很多缺陷,在实现插入、删除时,多张表之间存在信息不对称问题,例如教师或学生删除后,没有将其相关记录删除,也没有将其账号注销,更新信息也同样存在这样的问题,因此,测试时出现了很多异常情况,不过后来添加了触发器,大抵上解决了这些问题。
(4)SQL语句经常出错。因为是写在代码里面,查询语句表现出来就是一串字符串,在SQL SEVER写查询语句时,会自动检查拼写、逻辑错误,直接在代码里面写SQL语句非常容易出错,导致程序的中端。因为本质上都是对数据库的操作,我认为可以先在SQL SEVER中写好语句,并且验证其的正确性之后,再写入C# 代码中,这样会大大降低错误率。
(5)字符串匹配问题,在实现用户登录及密码修改时,我发现,对查询结果与本身的字符串进行匹配时,尽管他们显示出是相等的,但是匹配是不成功的。譬如说登录时,输入账号为A01,先通过查询找出A01的密码,在将输入的密码与其匹配,实验中将这两个进行输出,肉眼上是看不出差别的,但是程序匹配上是永远失败的,这个问题产生的原因至今我还是不太清楚。后来,我将这两个查询语句进行合并,返回满足账号和密码的记录数,若记录为0,则说明输入的账号或密码有误,若不是0,则说明输入无误。
(1)数据库表格的设计存在一些不合理的地方,Reports表中,感觉加入教师编号会更利与数据库的实现,因为只有教师姓名,会加剧设计教师与学生操作的复杂性,且出错率也会变高。
(2)功能实现的不够全面,管理员的功能主要体现在老师和学生这两种类别上,其实还可以进行课程的管理等等,学生的选课、退课功能也还没有考虑上,整个系统还是比较脆弱简单的。
(3)在进行学生成绩排名的时候,只能显示排名结果,但是不能显示名次。
(4)数据库设计时,涉及到班级和专业的地方很少,实际中,应该把这两个也考虑进去,才能完善整个系统。
(5)建立了太多视图,设计视图的时候,因为有很多信息的交叉,还有很多外键,需要很多自然连接 ,非常繁琐。
(1)本次课设让我理解了设计数据库的复杂性,并且数据库的设计一定要保障数据库的完整性和准确性,这些在数据定义、基本表建立、设计触发器和存储过程时都要仔细考虑。
(2)本次实验也让我对C#这么语言有了初步的理解,C#集合了c语言和java语言的优点,是一门非常适合做界面的语言,界面制作比较容易上手。
(3)设计更多的触发器,加强表与表之间的联系,尽量减少视图的数量,提高基本表与视图的有效性。
(4)优化界面,使界面更加符合实际需求。
体会
通过这次课程设计发现这其中需要的很多知识我们没有接触过,还有很多需要我们掌握的东西我们不明白。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。从 种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,操作起来要考虑到方方面面,这还只是一个比较简单的系统,可想可知在我们生活中应用的数据库会有多么复杂。
(写得比较简陋,页面不太美观,数据结构也存在问题,数据库文件已经找不到了,想要参考C#源码的可以私我,一定要先建好数据库(修改sqlConnect.cs的数据库名称),打开配置管理器所有的协议,确保连接没问题,再将C#每个页面的查询语句改成自己建的表)
不知道的看SQL Sever开启时服务器名称
要成功运行 一定要建好数据库、插入数据,插入的数据一定要有一定的对应关系,遵循主外键约束,当数据插入完毕之后。
插入数据参考
- insert
- into Xum_Majors18
- values('M01','计智')
- insert
- into Xum_Majors18
- values('M02','计科')
- insert
- into Xum_Majors18
- values('M03','软工')
- insert
- into Xum_Majors18
- values('M04','网工')
-
-
-
- insert
- into Xum_Class18
- values('CL01','计智1902','M01')
- insert
- into Xum_Class18
- values('CL02','计智1902','M01')
- insert
- into Xum_Class18
- values('CL03','计科1902','M02')
- insert
- into Xum_Class18
- values('CL04','计科1902','M02')
- insert
- into Xum_Class18
- values('CL05','网工1901','M03')
- insert
- into Xum_Class18
- values('CL06','网工1902','M03')
-
- insert
- into Xum_Class18
- values('CL07','软工1901','M04')
- insert
- into Xum_Class18
- values('CL08','软工1902','M04')
-
- insert
- into Xum_Courses18
- values('C01','离散数学','程珍','大一下','考试',4,24)
- insert
- into Xum_Courses18
- values('C03','机器学习','黄亮','大一下','考查',4 ,24)
- insert
- into Xum_Courses18
- values('C04','数字电路','赵冬冬','大一下','考试',4 ,24)
- insert
- into Xum_Courses18
- values('C05','数字电路','龙胜春','大一下','考试',4 ,24)
- insert
- into Xum_Courses18
- values('C06','马原','周文','大一上','考试',3 ,18)
- insert
- into Xum_Courses18
- values('C07','毛概','陈燕','大一下','考试',3 ,18)
- insert
- into Xum_Courses18
- values('C08','思修','吴五','大一上','考试', 4,24)
-
-
- insert
- into Xum_Students18
- values('06060101','张三','男',20,'浙江',20,'CL01')
- insert
- into Xum_Students18
- values('06060102','李四','男',20,'浙江',15,'CL01')
- insert
- into Xum_Students18
- values('06060103','王五','男',20,'浙江',10,'CL02')
- insert
- into Xum_Students18
- values('06060104','张南','女',20,'浙江',22,'CL02')
- insert
- into Xum_Students18
- values('06060105','丽丽','女',20,'北京',18,'CL03')
- insert
- into Xum_Students18
- values('06060106','倩倩','女',20,'浙江',19,'CL03')
- insert
- into Xum_Students18
- values('06060107','悠悠','女',20,'浙江',25,'CL04')
- insert
- into Xum_Students18
- values('06060108','琪琪','男',20,'安徽',22,'CL04')
- insert
- into Xum_Students18
- values('06060109','贝奇','男',20,'湖南',20,'CL05')
- insert
- into Xum_Students18
- values('06060110','洛克','男',20,'浙江',20,'CL05')
- insert
- into Xum_Students18
- values('06060202','尼克','男',20,'江苏',15,'CL06')
- insert
- into Xum_Students18
- values('06060203','艾米','女',20,'江西',10,'CL06')
- insert
- into Xum_Students18
- values('06060301','丝尔特','女',20,'福建',20,'CL07')
- insert
- into Xum_Students18
- values('06060302','梅森','男',20,'浙江',15,'CL07')
- insert
- into Xum_Students18
- values('06060403','大卫','男',20,'浙江',10,'CL08')
- insert
- into Xum_Students18
- values('06060405','汤米','女',20,'浙江',22,'CL08')
-
-
-
- insert
- into Xum_Teachers18
- values('T01','程珍','女',35,'教师','13344332278')
- insert
- into Xum_Teachers18
- values('T02','王英姿','女',35,'教师','13756742178')
- insert
- into Xum_Teachers18
- values('T03','黄亮','男',34,'教师','15745723349')
- insert
- into Xum_Teachers18
- values('T04','赵冬冬','男',30,'教师','17858640979')
- insert
- into Xum_Teachers18
- values('T05','龙胜春','女',37,'教师','17857573670')
- insert
- into Xum_Teachers18
- values('T06','周文','女',32,'教师','18367986174')
- insert
- into Xum_Teachers18
- values('T07','陈燕','女',45,'教师','17858427842')
- insert
- into Xum_Teachers18
- values('T08','吴五','男',35,'教师','15724547842')
-
-
-
- insert
- into Xum_Tea_Cour18
- values('T01','C01')
- insert
- into Xum_Tea_Cour18
- values('T02','C02')
- insert
- into Xum_Tea_Cour18
- values('T03','C03')
- insert
- into Xum_Tea_Cour18
- values('T04','C04')
-
- insert
- into Xum_Tea_Cour18
- values('T05','C05')
- insert
- into Xum_Tea_Cour18
- values('T06','C06')
- insert
- into Xum_Tea_Cour18
- values('T07','C07')
- insert
- into Xum_Tea_Cour18
- values('T08','C08')
-
-
- insert
- into Xum_Class_Cour18
- values('CL01','C01')
- insert
- into Xum_Class_Cour18
- values('CL02','C02')
- insert
- into Xum_Class_Cour18
- values('CL03','C03')
- insert
- into Xum_Class_Cour18
- values('CL04','C04')
- insert
- into Xum_Class_Cour18
- values('CL05','C05')
- insert
- into Xum_Class_Cour18
- values('CL06','C06')
- insert
- into Xum_Class_Cour18
- values('CL07','C07')
- insert
- into Xum_Class_Cour18
- values('CL08','C08')
-
- insert
- into Xum_Teac_Class18
- values('T01','CL01')
- insert
- into Xum_Teac_Class18
- values('T02','CL02')
- insert
- into Xum_Teac_Class18
- values('T03','CL03')
- insert
- into Xum_Teac_Class18
- values('T04','CL04')
- insert
- into Xum_Teac_Class18
- values('T05','CL05')
- insert
- into Xum_Teac_Class18
- values('T06','CL06')
- insert
- into Xum_Teac_Class18
- values('T07','CL07')
- insert
- into Xum_Teac_Class18
- values('T08','CL08')
-
-
- insert
- into Xum_Reports18
- values('C01','06060101',90,'大一下','程珍')
- insert
- into Xum_Reports18
- values('C01','06060102',93,'大一下','程珍')
- insert
- into Xum_Reports18
- values('C02','06060103',78,'大一上','王英姿')
- insert
- into Xum_Reports18
- values('C02','06060104',96,'大一上','王英姿')
-
- insert
- into Xum_Reports18
- values('C03','06060105',87,'大一下','黄亮')
-
- insert
- into Xum_Reports18
- values('C03','06060106',98,'大一下','黄亮')
- insert
- into Xum_Reports18
- values('C04','06060107',94,'大一下','赵冬冬')
- insert
- into Xum_Reports18
- values('C04','06060108',80,'大一下','赵冬冬')
- insert
- into Xum_Reports18
- values('C05','06060109',87,'大一下','龙胜春')
- insert
- into Xum_Reports18
- values('C05','06060110',96,'大一下','龙胜春')
- insert
- into Xum_Reports18
- values('C06','06060202',95,'大一上','周文')
- insert
- into Xum_Reports18
- values('C06','06060203',93,'大一上','周文')
- insert
- into Xum_Reports18
- values('C07','06060301',98,'大一下','陈燕')
- insert
- into Xum_Reports18
- values('C07','06060302',77,'大一下','陈燕')
- insert
- into Xum_Reports18
- values('C08','06060403',67,'大一上','吴五')
- insert
- into Xum_Reports18
- values('C08','06060405',88,'大一上','吴五')
-
-
-
-
- insert
- into Teachers_account18
- values('T01','12345')
- insert
- into Teachers_account18
- values('T02','12345')
- insert
- into Teachers_account18
- values('T03','12345')
- insert
- into Teachers_account18
- values('T04','12345')
- insert
- into Teachers_account18
- values('T05','12345')
- insert
- into Teachers_account18
- values('T06','12345')
- insert
- into Teachers_account18
- values('T07','12345')
- insert
- into Teachers_account18
- values('T08','12345')
-
-
- insert into
- Students_account18
- values('06060101','12345')
- insert into
- Students_account18
- values('06060102','12345')
- insert into
- Students_account18
- values('06060103','12345')
- insert into
- Students_account18
- values('06060104','12345')
- insert into
- Students_account18
- values('06060105','12345')
- insert into
- Students_account18
- values('06060106','12345')
- insert into
- Students_account18
- values('06060107','12345')
- insert into
- Students_account18
- values('06060108','12345')
- insert into
- Students_account18
- values('06060109','12345')
- insert into
- Students_account18
- values('06060110','12345')
- insert into
- Students_account18
- values('06060202','12345')
- insert into
- Students_account18
- values('06060203','12345')
- insert into
- Students_account18
- values('06060301','12345')
- insert into
- Students_account18
- values('06060302','12345')
- insert into
- Students_account18
- values('06060403','12345')
- insert into
- Students_account18
- values('06060405','12345')
-
- insert into
- Admin_account18
- values('A01','12345')
- insert into
- Admin_account18
- values('A02','12345')
打开所有协议,然后修改每个界面的查询语句
9. 如果一运行就报错,基本都是因为没有和数据库连接成功。
10.如果是点击了按钮之后,界面报错终止可以先在数据库运行该界面的sql语句,看具体报错信息
c#界面源码及文档报告见网盘
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。