.Net MVC订单后台管理系统源码编码过程
目录
.Net MVC订单后台管理系统源码编码过程
语言和环境
实现功能
功能1、显示数据
功能2、订单状态的颜色变化与操作中对应的超链接文字按钮
功能3、添加功能
数据库设计
编码完整示例:
数据库SQL
手动添加data
EF引入数据库
创建控制器
初始化函数——Index
初始化视图——Index.cshtml
创建视图——AddOrderPage
添加视图编码——AddOrderPage
创建函数
AddOrder
UpdateById
运行效果
按钮提示
语言和环境
1. 实现语言:C#语言。 2. 环境要求:Visual Studio 2012 SQL Server 2012 或以上版本。 3. 实现技术:ASP.NET MVC EF(100 分)或 ASP.NET 三层 EF(90 分)。
实现功能
功能1、显示数据
功能2、订单状态的颜色变化与操作中对应的超链接文字按钮
功能3、添加功能
两个字段都不能为空。
数据库设计
1. 创建订单项目数据库(OrdersDB)。
2. 创建订单信息表(OrderInfo),信息表结构见表 1。
编码完整示例:
数据库SQL
代码语言:javascript复制CREATE TABLE [dbo].[OrderInfo] (
[OrderID] int NOT NULL IDENTITY(1,1) ,
[UserName] nvarchar(20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[OrderDate] date NOT NULL ,
[OrderState] int NOT NULL ,
CONSTRAINT [PK__OrderInf__C3905BAFEF891235] PRIMARY KEY ([OrderID]),
CONSTRAINT [orderStateChick] CHECK (([OrderState]=(0) OR [OrderState]=(1)))
)
ON [PRIMARY]
GO
DBCC CHECKIDENT(N'[dbo].[OrderInfo]', RESEED, 1)
GO
SET IDENTITY_INSERT [dbo].[OrderInfo] ON
INSERT INTO [dbo].[OrderInfo] ([OrderID], [UserName], [OrderDate], [OrderState]) VALUES (N'1', N'王语嫣', N'2022-10-01', N'1');
GO
INSERT INTO [dbo].[OrderInfo] ([OrderID], [UserName], [OrderDate], [OrderState]) VALUES (N'2', N'刘亦菲', N'2022-09-30', N'0');
GO
INSERT INTO [dbo].[OrderInfo] ([OrderID], [UserName], [OrderDate], [OrderState]) VALUES (N'3', N'小龙女', N'2022-10-20', N'1');
GO
INSERT INTO [dbo].[OrderInfo] ([OrderID], [UserName], [OrderDate], [OrderState]) VALUES (N'6', N'龙姑娘', N'2022-10-06', N'0');
GO
INSERT INTO [dbo].[OrderInfo] ([OrderID], [UserName], [OrderDate], [OrderState]) VALUES (N'7', N'赵灵儿', N'2022-10-21', N'0');
GO
SET IDENTITY_INSERT [dbo].[OrderInfo] OFF
GO
手动添加data
EF引入数据库
这里的名称写【Order】就行
引入的时间可能很长,多等一会。完毕后会多出两个包,以及对应的模型文件。
创建控制器
初始化函数——Index
代码语言:javascript复制public ActionResult Index()
{
using (OrdersDBEntities db = new OrdersDBEntities())
{
List<OrderInfo> list = db.OrderInfo.OrderBy(o => o.OrderState).ToList();
ViewBag.list = list;
return View();
}
}
初始化视图——Index.cshtml
代码语言:javascript复制@{
ViewBag.Title = "Index";
}
<h2 align="center">简易订单管理系统</h2>
<hr />
<a href="~/Order/AddOrderPage">添加订单</a>
<table class="table table-bordered table-hover">
<tr>
<th>订单编号</th>
<th>下单人</th>
<th>订单日期</th>
<th>订单状态</th>
<th>操作</th>
</tr>
@foreach (var item in ViewBag.list)
{
<tr>
<td>@item.OrderID</td>
<td>@item.UserName</td>
<td>@item.OrderDate</td>
@if (item.OrderState == 0)
{
<td style="background-color:red">未发货</td>
}
else
{
<td>已发货</td>
}
<td>
@if (item.OrderState == 0)
{
<a href="~/Order/UpdateById?id=@item.OrderID">发货</a>
}
</td>
</tr>
}
</table>
创建视图——AddOrderPage
代码语言:javascript复制public ActionResult AddOrderPage() {
return View();
}
添加视图编码——AddOrderPage
代码语言:javascript复制@{
ViewBag.Title = "AddOrderPage";
}
<h2>添加订单</h2>
<hr/>
<form action="~/Order/AddOrder">
<p>
下单人:<input type="text" name="UserName" required/>
</p>
<p>
订单日期<input type="date" name="OrderDate" required/>
</p>
<p>
<input type="submit" value="提交"/>
</p>
</form>
创建函数
AddOrder
代码语言:javascript复制public ActionResult AddOrder(string UserName, DateTime OrderDate)
{
using (OrdersDBEntities db = new OrdersDBEntities())
{
OrderInfo info = new OrderInfo();
info.OrderID = 0;
info.UserName = UserName;
info.OrderDate = OrderDate;
info.OrderState = 0;
db.OrderInfo.Add(info);
//一定要保存
db.SaveChanges();
return Redirect("~/Order/Index");
}
}
UpdateById
代码语言:javascript复制public ActionResult UpdateById(int id) {
using (OrdersDBEntities db = new OrdersDBEntities())
{
OrderInfo orderInfo = db.OrderInfo.Where(o => o.OrderID == id).FirstOrDefault();
orderInfo.OrderState = 1;
//保存
db.SaveChanges();
return Redirect("~/Order/Index");
}
}
运行效果
按钮提示
代码语言:javascript复制<a href="~/Order/UpdateById?id=@item.OrderID" onclick="return confirm('是否修改此行?')">发货</a>