2) 房屋信息视图(View_RoomInfo)基于两个表:出租人信息表(Renter)、房屋信息表(RoomInfo)。 构建此视图所用的SQL脚本如下:
SELECT TOP (100) PERCENT dbo.Renter.RenterName,
dbo.Renter.Contact, dbo.Renter.RenterRental, dbo.RoomInfo.RoomID, dbo.RoomInfo.RoomType,
dbo.RoomInfo.Location, dbo.RoomInfo.Floor,
dbo.RoomInfo.RatingNum, dbo.RoomInfo.Area, dbo.RoomInfo.Price, dbo.Renter.ContractID, dbo.RoomInfo.TrueNum,
dbo.RoomInfo.Price - dbo.Renter.RenterRental
AS PlanProfit
FROM dbo.Renter INNER JOIN
dbo.RoomInfo ON dbo.Renter.RenterID = dbo.RoomInfo.RenterID
ORDER BY dbo.RoomInfo.RoomID
C. 存储过程
存储过程数据库中有2个存储过程,分别是添加客户存储过程(Procedure_AddCustomer)和减少客户存储过程(Procedure_MinusCustomer)。 1)
添加客户存储过程(Procedure_AddCustomer)是在指定房屋添加承租客户后更新房屋信息表(RoomInfo)的实住人数(TrueNum)。
添加客户存储过程(Procedure_AddCustomer)的SQL脚本如下: CREATE PROCEDURE [dbo].[Procedure_AddCustomer]
(
@roomID char(4)
)
AS
Update RoomInfo Set TrueNum=TrueNum+1 Where RoomID=@roomID RETURN GO 2)
减少客户存储过程(Procedure_MinusCustomer)是在指定房屋减少承租客户后更新房屋信息表(RoomInfo)的实住人数(TrueNum)。
减少客户存储过程(Procedure_MinusCustomer)的SQL脚本如下:
CREATE PROCEDURE [dbo].[Procedure_MinusCustomer]
(
@roomID char(4)
AS
Update RoomInfo Set TrueNum=TrueNum-1 Where RoomID=@roomID RETURN
)
GO
D. 规则
规则数据库中有3个规则:主要作用是分别限制出租人信息表(Renter)的RenterRental、房屋信息表(RoomInfo)的Price、承租客户表(Customer)的CustomerRental的范围在1在10000之间 USE [RentManage] GO
CREATE RULE [dbo].[Id_chke] AS @id BETWEEN 0 and 10000 GO
E. 触发器
在房屋信息表(RoomInfo)中建立了1个触发器,其主要作用是限制其中的额定人数(RatingNum)少于10,如果大于10,系统将不保存。
CREATE ALTER TRIGGER [dbo].[RoomInfo_insert] ON [dbo].[RoomInfo] FOR INSERT AS DECLARE @Num int SELECT @Num=RatingNum FROM inserted IF @Num>10 BEGIN
raiserror('',16,1) rollback transaction
END
F. 约束
在房屋信息表(RoomInfo)中建立了1个约束,其主要作用是限制其中的实住人数(TrueNum)的输入少于额定人数(RatingNum)。
G. 安全性
在后台数据库中,新建了一个登录名chp,在属性中限定了一些权限,在前台也有所显示,其登录名是为客户专门建立的,保证系统的安全性。
在前台连接数据库时,为管理员登录时,使用SA用户登录,密码为12345,赋予其最高权限,当为用户登录时,使用Chp用户登录,密码为314159。以下为前台连接数据库的部分代码。 public static string connection { get {
if (RentManage.登录.entry.Trim() == \管理员\ {
return\source=(local);user id=sa;password=12345;initial
catalog=RentManage;\
} else {
return\
initial catalog=RentManage;integrated security=SSPI;\
} } }
心得体会与收获
数据库设计开发与总结报告即将完成之际,回想起开始工作的不知所措,以及调研、调试过程中的多次遇阻,真是说不出的艰辛,有时候弄得比较有趣了,都是在熬夜给弄出来的。在开始设计数据库时,真的不知道从何开始,通过一些同学在课堂上讲解他们的系统,并且自己多次与他们和老师交流之后,终于确定了自己的方向,基于C#下设计一个房屋出租系统。在图书馆借了一些C#的教程和C#课程设计案例精编,于是开始模仿者来建立前台。
说真的,C#真的很不好学,很多方面的东西,在短短一个月内要了解他真的很难,于是我下载了一些系统,试着使用VS2008边模仿边学,便实现自己的系统,可是在调试过程中,出现了无数多的错误,有时候解决一个错误都得花上好几个小时。幸好,有许多老师、同学的帮助,我才得以调试成功,一次次的改进自己的程序,实现各种功能。正是在这些朋友的帮助下,我才及时纠正了自己的语法错误、逻辑错误、攻克了不少难点。
在此,我首先感谢我的安剑奇老师。是他给了我们这次自学的机会,使我自学了C#并且完成了自己的系统,而且安老师在这个过程中还不断给我们建议,像我们提一些要求,虽然有时候觉得很困难,但是自己也是咬牙给撑下来了,硬是给完成了。
此外,我也要感谢那些给予我信心、帮助的同学、朋友,特别是那几位会C#的好心朋友,虽然以前并不认识你们,只是在要做系统的时候请你们帮忙,你们也二话没说就来帮我调试系统,帮我改正错误,提出合理化的建议,增强程序的功能,并且细心的给我讲解,一次一弄就是好几个小时。在这里我要衷心的谢谢你们,谢谢你们这次系统设计中对我的帮助和关怀。
在此次系统的设计中真的学到了很多东西。
1.首先就是持之以恒的那种精神,每次遇到自己很头痛的问题时,都有点想放弃的感觉。通过不断问同学,百度,百度上很多东西也非常有用,自己逐渐来解决; 2.然后就是自己也算是入门了一个软件了吧,知道VS2008怎么用了,也会用C#语言来开发简单的界面和系统;
3.对数据库更加的了解了,自己学会了建立约束、规则、触发器、视图、存储过程、数据库的安全性的处理。知道怎样来实现数据库的完整性和安全性。