.Net MVC订单后台管理系统源码编码过程

2022-11-30 19:23:04 浏览数 (1)

.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>

0 人点赞