基于C#+Oracle的模拟图书馆管理系统
上学期的大作业,以此为记。
基于C#+Oracle的模拟图书馆管理系统
目录
基于C#+Oracle的模拟图书馆管理系统
需要实现的功能
数据库设计
前端设计
需要实现的功能
1.学生登录/注册
2.后台(admin)增删改查,包括修改学生信息和图书信息,可以查看所有书库库存以及学生信息表。
3.学生登录后的信息查看,自己的借书情况 以及到期日期。
数据库:Oracle11.2.0
前端:C#
开发平台:visual studio 2017 ,PL/SQL Developer
需要开启的服务
OracleServiceORCL
TNSListener
OracleDBConsoleORCL
数据库设计
图书馆分为三个校区,每个校区各有一张图书信息表。一共三个数据库。
名称 | 类型 | 可为空 | 注释 |
---|---|---|---|
bid | varchar | no | 图书ID |
bname | varchar | no | 图书名 |
bnum | int | no | 图书库存数量 |
学生表
名称 | 类型 | 可为空 | 注释 |
---|---|---|---|
sno | varchar | no | 学号 |
sname | varchar | yes | 姓名 |
spassword | varchar | no | 密码 |
region | varchar | no | 所属校区 |
借书表
名称 | 类型 | 可为空 | 注释 |
---|---|---|---|
sno | varchar | no | 学号 |
bno | varchar | no | 书号 |
bregion | varchar | no | 图书所属校区 |
gtime | date | no | 借书时间 |
btime | date | no | 归还时间 |
数据库sql文件,由于我的资源中不包含数据库需要自行创建oracle数据库然后把表导进去。
dzy数据库
用户名 admin1 密码qwe123789A
包含借书表和学生表
sql文件,导入到PLSQL即可
表结构(必须先导入表 在导入数据)
--------------------------------------------
-- Export file for user ADMIN1 --
-- Created by dell on 2020/2/20, 15:44:57 --
--------------------------------------------set define off
spool student.logprompt
prompt Creating table BORROW
prompt =====================
prompt
create table BORROW
(sno VARCHAR2(20) not null,bno VARCHAR2(20) not null,bregion VARCHAR2(20) not null,gtime DATE not null,btime DATE not null
)
;prompt
prompt Creating table STUDENT
prompt ======================
prompt
create table STUDENT
(sno VARCHAR2(20) not null,sname VARCHAR2(10),spassword VARCHAR2(20) not null,region VARCHAR2(20) not null
)
;
comment on column STUDENT.snois '学号';
comment on column STUDENT.snameis '姓名';
comment on column STUDENT.spasswordis '密码';
comment on column STUDENT.regionis '所属校区';
alter table STUDENTadd constraint UNIQ primary key (SNO);spool off
数据
prompt PL/SQL Developer import file
prompt Created on 2020年2月20日 by dell
set feedback off
set define off
prompt Disabling triggers for BORROW...
alter table BORROW disable all triggers;
prompt Disabling triggers for STUDENT...
alter table STUDENT disable all triggers;
prompt Deleting STUDENT...
delete from STUDENT;
commit;
prompt Deleting BORROW...
delete from BORROW;
commit;
prompt Loading BORROW...
insert into BORROW (sno, bno, bregion, gtime, btime)
values ('1704010604', 'w000004', '西区', to_date('13-12-2019', 'dd-mm-yyyy'), to_date('20-12-2019', 'dd-mm-yyyy'));
insert into BORROW (sno, bno, bregion, gtime, btime)
values ('1704010604', 'e000002', '东区', to_date('23-12-2019', 'dd-mm-yyyy'), to_date('30-12-2019', 'dd-mm-yyyy'));
insert into BORROW (sno, bno, bregion, gtime, btime)
values ('1704010604', 'w000001', '西区', to_date('14-12-2019', 'dd-mm-yyyy'), to_date('21-12-2019', 'dd-mm-yyyy'));
commit;
prompt 3 records loaded
prompt Loading STUDENT...
insert into STUDENT (sno, sname, spassword, region)
values ('1704010405', '曹昂', '966330', '西区');
insert into STUDENT (sno, sname, spassword, region)
values ('1704011230', '测试三', '456023', '南区');
insert into STUDENT (sno, sname, spassword, region)
values ('1703010205', '测试四', '123055', '南区');
insert into STUDENT (sno, sname, spassword, region)
values ('1604010618', '测试二', '332213', '东区');
insert into STUDENT (sno, sname, spassword, region)
values ('1804010443', '测试南', '885522', '南区');
insert into STUDENT (sno, sname, spassword, region)
values ('1704010604', '萧炎', '230017', '西区');
insert into STUDENT (sno, sname, spassword, region)
values ('1704010301', '约翰', '987654', '西区');
insert into STUDENT (sno, sname, spassword, region)
values ('1704010302', 'JR史密斯', '643359', '南区');
insert into STUDENT (sno, sname, spassword, region)
values ('1701010111', '测试', '445566', '西区');
insert into STUDENT (sno, sname, spassword, region)
values ('12306', '管理员', '517406', '图书馆管理员');
insert into STUDENT (sno, sname, spassword, region)
values ('1704010808', '海瑟薇', '123665', '西区');
insert into STUDENT (sno, sname, spassword, region)
values ('1803020506', '安东尼', '456123', '东区');
commit;
prompt 12 records loaded
prompt Enabling triggers for BORROW...
alter table BORROW enable all triggers;
prompt Enabling triggers for STUDENT...
alter table STUDENT enable all triggers;
set feedback on
set define on
prompt Done.
图书库
数据库名 libwest,libeast,libsouth
分别对应用户west1,east1,south1代表三个区,密码同上。
表结构代码(bookwest bookeast booksouth)
--------------------------------------------
-- Export file for user WEST1 --
-- Created by dell on 2020/2/20, 16:04:32 --
--------------------------------------------set define off
spool book.logprompt
prompt Creating table BOOKWEST
prompt =======================
prompt
create table BOOKWEST
(bid VARCHAR2(20) not null,bname VARCHAR2(20) not null,bnum NUMBER not null
)
;
comment on column BOOKWEST.bidis '图书ID';
comment on column BOOKWEST.bnameis '图书名称';
comment on column BOOKWEST.bnumis '图书数目';
alter table BOOKWESTadd constraint ID primary key (BID);spool off
数据
prompt PL/SQL Developer import file
prompt Created on 2020年2月20日 by dell
set feedback off
set define off
prompt Disabling triggers for BOOKWEST...
alter table BOOKWEST disable all triggers;
prompt Deleting BOOKWEST...
delete from BOOKWEST;
commit;
prompt Loading BOOKWEST...
insert into BOOKWEST (bid, bname, bnum)
values ('w000001', '三国演义', 9);
insert into BOOKWEST (bid, bname, bnum)
values ('w000002', '二战全史', 6);
insert into BOOKWEST (bid, bname, bnum)
values ('w000003', '水浒传', 9);
insert into BOOKWEST (bid, bname, bnum)
values ('w000004', '操作系统', 15);
commit;
prompt 4 records loaded
prompt Enabling triggers for BOOKWEST...
alter table BOOKWEST enable all triggers;
set feedback on
set define on
prompt Done.
导入方法:先将代码保存在文本文档,然后改拓展名为.sql 在PLSQL中选择tools-导入,先导入表结构,再导入数据。
前端设计
采用VS2017的C#作为前端开发语言。引用了Oracle的DLL作为库。
启动页面
登录连接数据库的核心代码
private void LoginButton_Click(object sender, EventArgs e){if(textBoxSnoInput.Text==""||textBoxPasswordInput.Text==""||region.Text==""||region.Text=="请选择校区"){MessageBox.Show("用户名或密码或校区信息不能为空!", "提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);}else{string username = textBoxSnoInput.Text.ToString();string password = textBoxPasswordInput.Text.ToString();string region1 = region.Text.ToString();string strConnection = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA = (SERVICE_NAME = dzy))); Persist Security Info = True; User ID = admin1; Password = qwe123789A; ";//以上为一行,显示为三行OracleConnection conn = new OracleConnection(strConnection);conn.Open();OracleCommand LoginCommand = conn.CreateCommand();LoginCommand.CommandText = "select * from student where sno = '" + username + "' and spassword = '" + password + "'"; ;OracleDataReader reader = LoginCommand.ExecuteReader();try{while (reader.Read()){name = reader["sno"].ToString();pwd = reader["spassword"].ToString();reg = reader["region"].ToString();}if (username.Trim() == name.Trim() && password.Trim() == pwd.Trim() && region1.Trim() == reg.Trim()){MessageBox.Show("欢迎登录图书管理系统! ", "SUCCESS");this.Hide();if(region1 == "图书馆管理员"){AdminLogon adminLogon = new AdminLogon();adminLogon.Show();}else{StudentLogon studentLogon = new StudentLogon();studentLogon.Show();}//Show sw = new Show();//跳转窗体//sw.Show();}else{MessageBox.Show("您的用户名或密码不正确! ", "ERROR");}}catch{MessageBox.Show("数据库无法连接!");}finally{conn.Close();//关闭连接}}}
学生端界面
使用了datagridview来显示数据库的数据,涉及到在子窗口调用datagridview数据的问题参见
C#.net 子窗口获取父窗口的数据(datagridview)
学生端借书界面
管理员界面(管理员账号 12306 密码517406 唯一)
管理图书信息 右键即可修改
详细代码可以下载我的资源查看。这里使用了VS自带的打包程序setup,解压得到安装包 里面包含着VS工程,一路next安装即可,桌面的快捷方式就是程序。.sln文件在VS里打开即可看到项目源码。
资源链接
基于C#+Oracle的本地图书馆
打包相关操作参考了xzqsr2011的博文
记初步使用 Installer Projects (VS 2017 Community) 制作安装包的流程
基于C#+Oracle的模拟图书馆管理系统相关推荐
- 程序设计-模拟图书馆管理系统
-------------------- 600行!文件读入!简单!C语言也能写! 大家好鸭,我又来更文啦(逃. 貌似现在写这个的话,应该没有多少同级的会看了,所以应该时写给下一级的学弟学妹的. 然后 ...
- 简单文件数据库-模拟图书馆管理系统
题目要求 编写一个程序模拟图书管理系统.用户分为管理员和读者两类,分别显示不同文本格式菜单,通过菜单项对应数字进行选择.读者菜单包括借书.还书.查询等功能.管理员菜单包括图书和读者信息录入.修改和删除 ...
- 程序设计基础课程设计—模拟图书馆管理系统
个人博客地址:https://travis1024.github.io/ 简单文件数据库-模拟图书馆管理系统 1. 问题描述 编写一个程序模拟图书管理系统.用户分为管理员和读者两类,分别显示不同文本格 ...
- 基于javaweb mvc模式的图书馆管理系统(不含框架)
最近没更博客,趁今晚有时间把近期的学习记录以及遇到的一些问题贴出来吧,也算是对最近工作的总结. 因为最近的笔记都整理在了Typora上,所以贴出来还是比较简单的. 上干货之前先简单说一下最近的学习过程 ...
- C语言模拟图书馆管理系统
这道题是我自己一个个码出来的,中间完全没有参考别人的代码,所以可能看起来并不美观.因为要求也不是很明确,所以我的密码功能就基本敷衍了事了,直接用人员编号来代替密码验证,反正题目也没要求.但是感觉不加点 ...
- 基于springboot的中国国家图书馆管理系统项目(管理功能)
中国国家图书馆管理系统项目(模板) 中国国家图书馆管理系统项目介绍 项目背景 项目功能 项目技术 项目模块 项目要求 中国国家图书馆管理系统项目开发流程 第一节 登录 1. 持久层 2. 业务层 3. ...
- 基于JAVA+Swing+MYSQL的图书馆管理系统
项目功能: 1.读者基本信息的输入,包括借书证编号.读者姓名.读者性别. 2.读者基本信息的查询.修改,包括读者借书证编号.读者姓名.读者性别等. 3.书籍类别标准的制定.类别信息的输入,包括类别编号 ...
- 实验总结:Java+oracle数据库实现图书馆管理系统
1 绪论. 1.1 开发背景. 1.2 开发目的和意义. 1.2.1 开发目的. 1.2.2开发意义. 2 系统分析. 2.1 需求分析. 2.2 可行性分析. 3 系统概要设计. 3.1 数据 ...
- ThinkPHP+基于ThinkPHP的图书馆管理系统 毕业设计-附源码311833
图书馆管理系统的设计与实现 摘 要 大数据时代下,数据呈爆炸式地增长.为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势.在图书馆的要求下,开 ...
最新文章
- R语言attach函数、detach函数(全局注册或者全局解除)实战
- 从汗水物流到智慧物流,物流产业智能化
- Petuum提出序列生成学习算法通用框架
- python操作html5日期控件_python、js 时间日期模块time
- Oracle varchar2或char类型的byte和char的区别
- php post登录跳转,php实现post跳转
- socket 编程入门教程(一)TCP server 端:3、sockaddr与sockaddr_in
- 从零开始搭建公司后台技术栈,这套架构绝了...
- 用于制作app store的截图的工具:Brief Wrapper —— 最便捷的应用商店屏幕快照
- nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
- c4dr20怎么安装oc渲染器怎么安装_c4d怎么安装oc渲染器/插件
- psd缩略图上传组件
- 微信小程序富文本编辑器
- Qt OpenGL加载OBJ模型
- ubuntu远程利用邮箱客户端发送邮件
- 算法提高 解二元一次方程组
- 如何设置qq说说展示时间_qq说说点赞特效怎么设置
- 学习正则表达式 - 匹配 Unicode 和其他字符
- 智慧医院3D导航导诊系统-基础功能详解
- 三岁小屁孩眼中的中国房价
热门文章
- 大家不用买无线路由器了也可以让手机上WIFI
- sublimelinter php,sublime text 3 在Windows下配置sublimelinter-php的路径问题
- Outlook 2007无法连接Exchange 2007
- Oracle作业第四章
- 两个div并排 左边div宽固定 右边自适应
- 查找、替换使用正则表达式
- 【数据结构】共享栈详解 判断共享栈满条件栈顶指针变化详解记忆方法例题
- 门禁系统服务器和客户端区别,从门禁系统功能决定选购
- JavaWeb图书商城 网上书城
- DDDM: A Brain-Inspired Framework for Robust Classification