上学期的大作业,以此为记。

基于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的模拟图书馆管理系统相关推荐

  1. 程序设计-模拟图书馆管理系统

    -------------------- 600行!文件读入!简单!C语言也能写! 大家好鸭,我又来更文啦(逃. 貌似现在写这个的话,应该没有多少同级的会看了,所以应该时写给下一级的学弟学妹的. 然后 ...

  2. 简单文件数据库-模拟图书馆管理系统

    题目要求 编写一个程序模拟图书管理系统.用户分为管理员和读者两类,分别显示不同文本格式菜单,通过菜单项对应数字进行选择.读者菜单包括借书.还书.查询等功能.管理员菜单包括图书和读者信息录入.修改和删除 ...

  3. 程序设计基础课程设计—模拟图书馆管理系统

    个人博客地址:https://travis1024.github.io/ 简单文件数据库-模拟图书馆管理系统 1. 问题描述 编写一个程序模拟图书管理系统.用户分为管理员和读者两类,分别显示不同文本格 ...

  4. 基于javaweb mvc模式的图书馆管理系统(不含框架)

    最近没更博客,趁今晚有时间把近期的学习记录以及遇到的一些问题贴出来吧,也算是对最近工作的总结. 因为最近的笔记都整理在了Typora上,所以贴出来还是比较简单的. 上干货之前先简单说一下最近的学习过程 ...

  5. C语言模拟图书馆管理系统

    这道题是我自己一个个码出来的,中间完全没有参考别人的代码,所以可能看起来并不美观.因为要求也不是很明确,所以我的密码功能就基本敷衍了事了,直接用人员编号来代替密码验证,反正题目也没要求.但是感觉不加点 ...

  6. 基于springboot的中国国家图书馆管理系统项目(管理功能)

    中国国家图书馆管理系统项目(模板) 中国国家图书馆管理系统项目介绍 项目背景 项目功能 项目技术 项目模块 项目要求 中国国家图书馆管理系统项目开发流程 第一节 登录 1. 持久层 2. 业务层 3. ...

  7. 基于JAVA+Swing+MYSQL的图书馆管理系统

    项目功能: 1.读者基本信息的输入,包括借书证编号.读者姓名.读者性别. 2.读者基本信息的查询.修改,包括读者借书证编号.读者姓名.读者性别等. 3.书籍类别标准的制定.类别信息的输入,包括类别编号 ...

  8. 实验总结:Java+oracle数据库实现图书馆管理系统

    1  绪论. 1.1 开发背景. 1.2 开发目的和意义. 1.2.1 开发目的. 1.2.2开发意义. 2  系统分析. 2.1 需求分析. 2.2 可行性分析. 3  系统概要设计. 3.1 数据 ...

  9. ThinkPHP+基于ThinkPHP的图书馆管理系统 毕业设计-附源码311833

    图书馆管理系统的设计与实现 摘 要 大数据时代下,数据呈爆炸式地增长.为了迎合信息化时代的潮流和信息化安全的要求,利用互联网服务于其他行业,促进生产,已经是成为一种势不可挡的趋势.在图书馆的要求下,开 ...

最新文章

  1. R语言attach函数、detach函数(全局注册或者全局解除)实战
  2. 从汗水物流到智慧物流,物流产业智能化
  3. Petuum提出序列生成学习算法通用框架
  4. python操作html5日期控件_python、js 时间日期模块time
  5. Oracle varchar2或char类型的byte和char的区别
  6. php post登录跳转,php实现post跳转
  7. socket 编程入门教程(一)TCP server 端:3、sockaddr与sockaddr_in
  8. 从零开始搭建公司后台技术栈,这套架构绝了...
  9. 用于制作app store的截图的工具:Brief Wrapper —— 最便捷的应用商店屏幕快照
  10. nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
  11. c4dr20怎么安装oc渲染器怎么安装_c4d怎么安装oc渲染器/插件
  12. psd缩略图上传组件
  13. 微信小程序富文本编辑器
  14. Qt OpenGL加载OBJ模型
  15. ubuntu远程利用邮箱客户端发送邮件
  16. 算法提高 解二元一次方程组
  17. 如何设置qq说说展示时间_qq说说点赞特效怎么设置
  18. 学习正则表达式 - 匹配 Unicode 和其他字符
  19. 智慧医院3D导航导诊系统-基础功能详解
  20. 三岁小屁孩眼中的中国房价

热门文章

  1. 大家不用买无线路由器了也可以让手机上WIFI
  2. sublimelinter php,sublime text 3 在Windows下配置sublimelinter-php的路径问题
  3. Outlook 2007无法连接Exchange 2007
  4. Oracle作业第四章
  5. 两个div并排 左边div宽固定 右边自适应
  6. 查找、替换使用正则表达式
  7. 【数据结构】共享栈详解 判断共享栈满条件栈顶指针变化详解记忆方法例题
  8. 门禁系统服务器和客户端区别,从门禁系统功能决定选购
  9. JavaWeb图书商城 网上书城
  10. DDDM: A Brain-Inspired Framework for Robust Classification