.NET&Web-图书管理系统
语言和环境
1. 实现语言:C#语言。
2. 环境要求:Visual Studio 2012+SQL Server 2012 或以上版本。
3. 实现技术:ASP.NET MVC+EF
实现功能
1. 首次打开页面,显示书库中所有的图书信息,如图 1 所示。
2. 点击超链接“新增图书”显示新增图书页面,如图 2 所示。
3. 点击“添加”按钮新增图书,需进行表单验证,其中,书籍名称、出版社、出版日期、单价必须 输入,若验证失败,效果如图 3 所示。
4. 成功添加图书之后,显示首页页面,如图 4 所示。
5. 点击操作栏“删除”按钮,提示是否删除指定书籍,如图 5 所示,点击“确定”后,删除所对应
的图书信息,删除成功后显示首页。
数据库设计
1、创建数据库(BookDB)。
2、创建图书表(BookInfo),结构如下:
具体要求及推荐实现步骤
1. 按以上数据库要求建库、建表,并添加测试数据,如图 6 所示。
2. 搭建系统框架。
3. 按照首页效果图创建首页,初次加载显示所有图书信息。
4. 点击“新增图书”,显示新增页面;点击“添加”时,如果未按要求填写信息,显示非空验证结 果;正确填写图书信息,则添加图书信息到数据库,并显示首页信息。
5. 点击操作栏“删除”按钮,提示是否删除,点击“确定”后,删除对应的图书信息,并显示首页 信息。
数据库创建
1、使用Navicat创建数据库
2、创建BookInfo表,设置主键id,钥匙代表主键,标识代表自增。
3、向表中添加数据
编辑建表sql
create table BookInfo (
BookId int primary key identity(1,1),
BookName varchar(50) not null,
Publishing varchar(500) not null,
PublishDate date not null,
Price decimal(18,2) not null
)
insert into BookInfo values('漫画威龙','武汉大学出版社','2021-05-21',120.00)
insert into BookInfo values('生存还是死亡','武汉出版社','2020-03-21',180.00)
insert into BookInfo values('思维导图','人民出版社','2019-08-21',199.00)
insert into BookInfo values('水浒传','人民出版社','1990-01-21',210.00)
insert into BookInfo values('三国演义','人民出版社','1998-07-21',398.00)
项目创建
引入EF
新建sqlserver链接
连接成功
引入完毕
编码
需要使用的对象【BookDBEntities】
创建控制器
引入命名空间以及使用EF进行数据查询。
添加视图
遍历视图及生成样式
@{
ViewBag.Title = "Index";
}
<h2>图书列表</h2>
<a href="~/BookDB/AddPage">新增图书</a>
<table class="tab-content table table-bordered">
<tr>
<th>编号</th>
<th>书籍名称</th>
<th>出版社</th>
<th>出版日期</th>
<th>单价</th>
<th>操作</th>
</tr>
@foreach (var item in ViewBag.list)
{
<tr>
<td>@item.BookId</td>
<td>@item.BookName</td>
<td>@item.Publishing</td>
<td>@Convert.ToDateTime(@item.PublishDate).ToString("yyyy年MM月dd日")</td>
<td>¥@item.Price</td>
<td>
<a href="#" class="btn btn-primary"> 删除</a>
</td>
</tr>
}
</table>
创建添加视图
public ActionResult AddPage()
{
using (BookDBEntities db = new BookDBEntities())
{
return View();
}
}
遍历添加视图以及创建添加函数
@{
ViewBag.Title = "AddPage";
}
<h2>新增图书</h2>
<hr />
<form action="~/BookDB/AddInfo" method="get">
<p>
书籍名称 <input type="text" name="BookName" required />
</p>
<p>
出版社 <input type="text" name="Publishing" required />
</p>
<p>
出版日期 <input type="date" name="PubilshDate" required />
</p>
<p>
单价 <input type="text" name="Price" required />
</p>
<p>
<input type="submit" value="提交" class="btn btn-primary"/>
</p>
</form>
删除函数
@{
ViewBag.Title = "Index";
}
<h2>图书列表</h2>
<a href="~/BookDB/AddPage">新增图书</a>
<table class="tab-content table table-bordered">
<tr>
<th>编号</th>
<th>书籍名称</th>
<th>出版社</th>
<th>出版日期</th>
<th>单价</th>
<th>操作</th>
</tr>
@foreach (var item in ViewBag.list)
{
<tr>
<td>@item.BookId</td>
<td>@item.BookName</td>
<td>@item.Publishing</td>
<td>@Convert.ToDateTime(@item.PublishDate).ToString("yyyy年MM月dd日")</td>
<td>¥@item.Price</td>
<td>
<a href="~/BookDB/Del?id=@item.BookId" onclick="return confirm('确定删除《@item.BookName》吗?')" class="btn btn-primary"> 删除</a>
</td>
</tr>
}
</table>
public ActionResult Del(int id)
{
using (BookDBEntities db = new BookDBEntities())
{
BookInfo book = db.BookInfo.Where(o => o.BookId == id).SingleOrDefault();
db.BookInfo.Remove(book);
if (db.SaveChanges() > 0)
{
return Redirect("~/BookDB/Index");
}
return Content("<script>alert('删除失败!')</script>");
}
}
运行效果