ASP.NET MVC多表示例题-酒店管理
目录
酒店房间后台管理系统
1.语言和环境
1. 实现语言:C#语言。
2. 环境要求:Visual Studio 2012 + SQL Server 2012 或以上版本。
3. 实现技术:ASP.NET MVC+EF(100 分)或 ASP.NET+三层+EF(90 分)。
4. 功能要求:不得使用第三方工具生成实体类、持久层代码,否则不得分。
2.实现功能
1. 首次打开页面,展示所有酒店房间信息列表,如图 1 所示。
图1
要求如下:
(1).房间单价:保留两位小数,以人民币形式显示,如“¥2.50”。
(2).酒店房间状态:若酒店房间状态为未入住,则显示绿色文字“空房间”,并显示“入住”操作按钮;如果房间状态为已入住,则显示红色文字“已入住”,并显示“退房”操作按钮。
(3).房间类型:从房间类型表中查询出每间房所对应的房间类型,显示在网页中。
2.点击“入住”,可以将对应酒店房间状态修改为“已入住”,并重新显示;点击“退房”按钮将对应酒店。房间状态修改为“未入住”并重新显示,如图 2 所示。
图2
3.点击首页中的删除链接,弹出删除确认消息框,提示是否删除,确认后删除对应房间,删除成功后重新显示首页,如图 3 所示。
图3
1. 创建酒店房间项目数据库(HotelDB)。
2. 创建酒店房间类型表(RoomType),信息表结构见表 1
表 1 Room 表结构
字段名 |
说明 |
字段类型 |
长度 |
备注 |
TID |
编号 |
int |
|
主键,自增,增量为 1 |
TypeName |
类型名 |
nvarchar |
20 |
非空 |
表 2 Room 表结构
3.创建酒店房间信息表(Room),信息表结构见表 2。
字段名 |
说明 |
字段类型 |
长度 |
备注 |
ID |
编号 |
int |
|
主键,自增,增量为 1 |
Name |
下单人 |
nvarchar |
20 |
非空 |
TID |
类型编号 |
int |
|
非空,外键,关联到类型表编号 |
Price |
单价 |
decimal |
18,2 |
非空 |
Phone |
内线电话 |
nvarchar |
20 |
非空 |
Statu |
入住状态 |
int |
|
默认 0,0-未入住,1-已入住 |
4.具体要求及推荐实现步骤
1. 按以上数据库要求建库、建表,并添加测试数据。
2. 搭建系统框架。
(1)正确创建项目(MVC 或者 ASP.NET)。
(2)创建实体数据模型。
(3)创建控制器、视图(或者三层)。
3. 创建首页并显示所有酒店房间信息。
(1)控制器(或者三层)中编写显示所有酒店房间的方法。
(2)房间单价以人民币形式显示,保留两位小数,如“¥2.50”。
(3) 若酒店房间状态为未入住,则显示绿色文字“空房间”,并显示“入住”操作按钮;如果房间状态为已入住,则显示红色文字“已入住”,并显示“退房”操作按钮。
4. 入住和退房操作。
(1) 对“未入住”房间,点击“入住”将指定酒店房间状态更改为“已入住”并重新显示首页。
(2) 对“已入住”房间,点击“退房”将指定酒店房间状态更改为“未入住”并重新显示首页。
5. 删除:点击删除按钮,弹出确认删除提示框,点击“取消”不删除数据;点击“确定”才会删除对应房间信息,并显示首页信息。
sqlserver数据库
库名HotelDB
建表语句:
ER图
创建MVC项目
引入EF
我这里离交HotelDB,会自动生成HotelDBEntities
引入刚创建的两个表
EF多表查询技巧
EF写法
List<Room> rooms = db.Room.Include("RoomType").ToList();
视图遍历方法
@foreach (var item in ViewBag.list)
{
<tr>
<td>@item.ID</td>
<td>@item.RoomType.TypeName</td>
<td>@item.Name</td></tr>
}
控制器编码
创建HotelController.cs控制器
Index视图层
- 点赞
- 收藏
- 关注作者
评论(0)