科研管理系统

基于C#的数据库管理系统,数据库使用的是sql server,开发环境是vs2017,科研管理平台,两种用户角色登录,管理员和教工,实现对教师的管理以及对项目的管理,申请,验收,

 √ 实现学院、职务、职称等基本信息的管理;
 √ 实现教师信息的管理;
 √ 实现科研项目的申报、审批管理;
 √ 实现科研项目的验收管理;
 √ 创建默认,并绑定到科研项目的验收标志,使其默认值为“未验收”;
 √ 创建触发器,新增项目时自动修改学院总项目数;
 √ 创建存储过程统计个院系科研项目的申报和完成数量;
 √ 建立数据库相关表之间的参照完整性约束。

界面如下:
登录界面
管理员界面
教工界面
下面是数据库代码

项目状态 申请中 进行中 验收中 验收通过	申请终止 已终止

ManagmentDB包含 ManagmentId	
				ManagmentCode
				ManagmentName

userDB包含 	姓名
			教工号
			密码
			学院id
			职务 
			职称
			项目数
projectDB包含  	教工号
				项目号
				项目名称
				项目简介
				项目进展
academyDB包含	学院名
				学院id



create table academyDB
(
	AcademyId		INT	PRIMARY KEY,
	AcademyName		VARCHAR(20),
	AcademyProNum	INT,
)


create table userDB 
(
	UserName   	VARCHAR(20),
	UserId	   	INT   PRIMARY KEY,
	PassWord   	CHAR(20),
	AcademyId	INT,
	Job			VARCHAR(20),
	Positional 	VARCHAR(20),
	ProjectNum	INT,
	FOREIGN KEY(AcademyId) REFERENCES academyDB(AcademyId),
)

create table projectDB
(
	UserId			INT,
	ProjectId  		INT	PRIMARY KEY,
	ProjectName		VARCHAR(20),
	ProjectNews		VARCHAR(50),
	ProjectState	VARCHAR(20)  DEFAULT ('申请中'),
	FOREIGN KEY(UserId) REFERENCES userDB(UserId),
)
INSERT INTO projectDB VALUES(1609050130, 1,'图书管理系统','一款图书管理系统','申请中');
INSERT INTO projectDB(UserId,ProjectId,ProjectName,ProjectNews) VALUES(1609050130, 2,'大学生选课系统','一款大学生选课系统');

create table managmentDB
(
	ManagmentName 	VARCHAR(20),
	ManagmentId		INT	PRIMARY KEY,
	ManagmentCode	CHAR(20),
)


INSERT INTO managmentDB VALUES('liuzt', 1609050130, '123456');

INSERT INTO academyDB VALUES(1, '计算机科学与技术学院',0);
INSERT INTO academyDB VALUES(2, '石油工程学院',0);
INSERT INTO academyDB VALUES(3, '理学院',0);
INSERT INTO academyDB VALUES(4, '文学院',0);
INSERT INTO academyDB VALUES(5, '控制学院',0);
INSERT INTO academyDB VALUES(6, '机电学院',0);

INSERT INTO userDB VALUES('喊喊' , 1609050130, '123456', 1, '教务处主任', '教授', 0);



//存储过程,统计各学院项目数

CREATE OR ALTER PROCEDURE Select_Count_Project
@id int
AS
BEGIN
            declare @academyNum int ,@acaId int;
		     set @acaId = 1;
			SELECT @academyNum =(SELECT count(*) FROM projectDB WHERE UserID IN(SELECT  UserId FROM userDB WHERE AcademyId = @id))
			UPDATE academyDB SET AcademyProNum =  @academyNum WHERE  AcademyId = @id
END
GO

执行 EXEC	Select_Count_Project 2


//触发器 

USE test
GO
CREATE TRIGGER selectProjectNum ON projectDB
AFTER INSERT
AS
DECLARE @a int,@num int
SET @a = 1;
SELECT @num = (SELECT count(*) FROM academyDB)
WHILE  @a <= @num
	BEGIN
		EXEC	Select_Count_Project @a
		SET @a=@a+1
	END
GO 

下载链接

  • 3
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值