ASP.NET MVC企业级程序设计 (商品管理:小计,总计,删除,排序)

news2024/11/24 12:56:01

目录

效果图

实现过程 

1创建数据库

 2创建项目文件

 3创建控制器,右键添加,控制器

​编辑 注意这里要写Home​编辑

 创建成功

数据模型创建过程之前作品有具体过程​编辑

4创建DAL

5创建BLL 

6创建视图,右键添加视图

​编辑 7HomeController.cs代码

8Index.cshtml代码


效果图

实现过程 

1创建数据库

create database GoodsDB
CREATE TABLE Goods(
	[GoodsID] [int] IDENTITY(1,1) NOT NULL,
	[GoodsName] [nvarchar](50) NOT NULL,
	[GoodsPrice] [decimal](10, 2) NOT NULL,
	[GoodsStock] [int] NOT NULL)
	INSERT  Goods( [GoodsName], [GoodsPrice], [GoodsStock]) VALUES ( N'魔幻陀螺', CAST(19.00 AS Decimal(10, 2)), 20)
INSERT Goods( [GoodsName], [GoodsPrice], [GoodsStock]) VALUES ( N'开花精灵惊喜盲盒', CAST(89.00 AS Decimal(10, 2)), 10)
INSERT Goods ( [GoodsName], [GoodsPrice], [GoodsStock]) VALUES ( N'跳跃战士玩具2变形汽车', CAST(18.00 AS Decimal(10, 2)), 50)
INSERT Goods( [GoodsName], [GoodsPrice], [GoodsStock]) VALUES ( N'正版灵动奥特曼软胶囊玩具', CAST(25.00 AS Decimal(10, 2)), 20)
INSERT Goods ( [GoodsName], [GoodsPrice], [GoodsStock]) VALUES ( N'帮帮龙变形车套装', CAST(109.00 AS Decimal(10, 2)), 5)

 

 2创建项目文件

 

 

 3创建控制器,右键添加,控制器

 注意这里要写Home
 创建成功
数据模型创建过程之前作品有具体过程

4创建DAL

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MvcApplication1.Models;
namespace MvcApplication1.DAL
{
    public class GoodsService
    {   
        //展示
        public static List<Goods> Show() {
            GoodsDBEntities db = new GoodsDBEntities();
            return db.Goods.ToList();
        }
        //计算小计
        public static string Sun() {
            GoodsDBEntities db = new GoodsDBEntities();
            return db.Goods.Sum(m => m.GoodsPrice * m.GoodsStock).ToString();
        }
        //找到需要删除的一条数据,后面被调用
        public static Goods GetID(string goodid) {
            GoodsDBEntities db = new GoodsDBEntities();
            int temp = Convert.ToInt32(goodid);
            return db.Goods.SingleOrDefault(m => m.GoodsID == temp);
        }
        //调用查找数据的方法进行删除
        public static bool Delect(string goodid) {
         Goods good=   GetID(goodid);
         if (good==null)
         {
             return false;
         }
         else
         {
             GoodsDBEntities db = new GoodsDBEntities();
             db.Entry(good).State = System.Data.EntityState.Deleted;
             db.Goods.Remove(good);
             return db.SaveChanges() > 0;
         }
        }
        //排序方法
        public static List<Goods> getGoodlist(bool priceOrder) {
            GoodsDBEntities db = new GoodsDBEntities();
            if (priceOrder==true)
            {
                return db.Goods.OrderByDescending(m => m.GoodsPrice).ToList();
            }
            else
            {
                return db.Goods.OrderBy(m => m.GoodsPrice).ToList();
            }
        
        
        }
    }
}

5创建BLL 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MvcApplication1.Models;
namespace MvcApplication1.BLL
{
    public class GoodsManger
    {
        public static List<Goods> Show()
        {
            GoodsDBEntities db = new GoodsDBEntities();
            return db.Goods.ToList();
        }
        public static string Sun()
        {

            return DAL.GoodsService.Sun();
        }
        public static bool Delect(string goodid) {
            return DAL.GoodsService.Delect(goodid);
        
        }
        public static List<Goods> getGoodlist(bool priceOrder) {
            return DAL.GoodsService.getGoodlist(priceOrder);
        }
    }
}

6创建视图,右键添加视图

 7HomeController.cs代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;
namespace MvcApplication1.Controllers
{
    public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index(bool PriceOrderDese=false)
        {
        ViewData["goods"] = BLL.GoodsManger.Show();
       ViewData["sum"] = BLL.GoodsManger.Sun();

       ViewData["goods"] = BLL.GoodsManger.getGoodlist(PriceOrderDese);
       ViewBag.PriceOrderDese = !PriceOrderDese;

       return View();
        }
        public ActionResult DeleteGood(string goodId) {
            BLL.GoodsManger.Delect(goodId);

            return RedirectToAction("Index");
        }

    }
}

8Index.cshtml代码

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>
</head>
<body>
    <div>
        <table border="1">
            <tr>
                <th>ID</th>
                 <th>商品名</th>
                    <th>@Html.ActionLink("价格排序", "Index", new {PriceOrderDese=@ViewBag.PriceOrderDese})</th>
                 <th>库存</th>
                 <th>小计</th>
                 <th>操作</th>
            </tr>
            @{
                foreach (var good in ViewData["goods"] as List<MvcApplication1.Models.Goods>)
                {
                     <tr>
                <td>@good.GoodsID</td>
                 <td>@good.GoodsName</td>
                 <td>@good.GoodsPrice</td>
                 <td>@good.GoodsStock</td>
                 <td>@(@good.GoodsPrice*@good.GoodsStock)</td>
                 <td>@Html.ActionLink("删除","DeleteGood", new{goodId=good.GoodsID})</td>
            </tr>
                }
                
                
                
                }
            <tr>
                <td  colspan="6">总计:@ViewData["sum"]</td>
                
            </tr>


        </table>
    </div>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1607612.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vscode+vue开发常用插件整理

前言&#xff1a; vscode新机开发常用插件整理 1、chinese 简体中文配置 2、file-jump 别名跳转&#xff0c;可以把引入的组件&#xff0c;通过ctrl地址名 跳转组件内部 3、Vue Peek&#xff1a;vue项目中的一些配置&#xff0c;安装后&#xff0c;能实现 ctrl组件名 跳转…

华为ensp中Hybrid接口原理和配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月19日14点03分 Hybrid接口是ENSP虚拟化中的一种重要技术&#xff0c;它既可以连接普通终端的接入链路&#xff0c;又可以连接交换机间的干道链路。Hybrid接口允许多…

栈和队列OJ(面试高频题 - 看完包!!!拿捏)

目录 题目一&#xff1a;括号匹配问题&#xff08;来源&#xff09; 题目描述 题目思路及实现 题目二&#xff1a;用队列实现栈&#xff08;来源&#xff09; 题目描述 题目思路及实现 题目三&#xff1a;用栈实现队列&#xff08;来源&#xff09; 题目描述 题目思路及实现 …

【个人博客搭建】(3)添加SqlSugar ORM 以及Json配置文件读取

1、安装sqlsugar。在models下的依赖项那右击选择管理Nuget程序包&#xff0c;输入sqlsugarcore&#xff08;因为我们用的是netcore&#xff0c;而不是net famework所以也对应sqlsugarcore&#xff09;&#xff0c;出来的第一个就是了&#xff0c;然后点击选择版本&#xff0c;一…

stm32开发之threadx之modulex模块文件的生成脚本项目

前言 为了保证在window上运行&#xff0c;且体积小的问题&#xff0c;所以采用c语言编写生成脚本,将相关路径由json文件进行配置,使用了一个cjson库进行解析项目构建使用的是cmake 项目代码 CMakeLists文件 cmake_minimum_required(VERSION 3.27) project(txm_bat_script C…

MindOpt APL向量化建模语法的介绍与应用(2)

前言 在数据科学、工程优化和其他科学计算领域中&#xff0c;向量和矩阵的运算是核心组成部分。MAPL作为一种数学规划语言&#xff0c;为这些领域的专业人员提供了强大的工具&#xff0c;通过向量式和矩阵式变量声明以及丰富的内置数学运算支持&#xff0c;大大简化了数学建模…

通过实例学C#之ArrayList

介绍 ArrayList对象可以容纳若干个具有相同类型的对象&#xff0c;那有人说&#xff0c;这和数组有什么区别呢。其区别大概可以分为以下几点&#xff1a; 1.数组效率较高&#xff0c;但其容量固定&#xff0c;而且没办法动态改变。 2.ArrayList容量可以动态增长&#xff0c;但…

Go栈内存管理源码解读

基本介绍 栈内存一般是由Go编译器自动分配和释放&#xff0c;其中存储着函数的入参和局部变量&#xff0c;这些参数和变量随着函数调用而创建&#xff0c;当调用结束后也会随之被回收。通常开发者不需要关注内存是分配在堆上还是栈上&#xff0c;这部分由编译器在编译阶段通过…

Day92:系统攻防-WindowsLinux远程探针本地自检任意执行权限提升入口点

目录 操作系统-远程漏扫-Nessus&Nexpose&Goby Nessus Nexpose 知识点&#xff1a; 1、远程漏扫-Nessus&Nexpose&Goby 2、本地漏扫-Wesng&Tiquan&Suggester 3、利用场景-远程利用&本地利用&利用条件 操作系统-远程漏扫-Nessus&Nexpose&a…

C语言(一维数组)

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;关注收藏&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#x…

鸿蒙TypeScript学习21天:【声明文件】

TypeScript 作为 JavaScript 的超集&#xff0c;在开发过程中不可避免要引用其他第三方的 JavaScript 的库。虽然通过直接引用可以调用库的类和方法&#xff0c;但是却无法使用TypeScript 诸如类型检查等特性功能。为了解决这个问题&#xff0c;需要将这些库里的函数和方法体去…

将本地项目上传到Github

首先安装git、创建github账号 1、创建一个新的仓库 2、创建SSH KEY。先看一下你C盘用户目录下有没有.ssh目录&#xff0c;有的话看下里面有没有id_rsa和id_rsa.pub这两个文件&#xff0c;有就跳到下一步&#xff0c;没有就通过下面命令创建。 ssh-keygen -t rsa -C "you…

微信小程序echart图片不显示 问题解决

目录 1.问题描述&#xff1a;2.解决方法&#xff1a;2.1第一步2.2第二步2.2效果 小结&#xff1a; 1.问题描述&#xff1a; echart图片不显示 图片&#xff1a; 2.解决方法&#xff1a; 2.1第一步 给wxml中的ec-canvas组件添加宽高样式&#xff1a;style"width: 100%…

Docker容器tomcat中文名文件404错误不一定是URIEncoding,有可能是LANG=zh_CN.UTF-8引起

使用Docker部署tomcat&#xff0c;出现中文名文件无法读取&#xff0c;访问就是404错误。在网上搜索一通&#xff0c;都说是在tomcat的配置文件server.xml中修改一下URIEncoding为utf-8就行&#xff0c;但是我怎么测试都不行。最终发现&#xff0c;是Docker启动时&#xff0c;传…

【经典算法】LeetCode 64. 最小路径和(Java/C/Python3/Golang实现含注释说明,Easy)

作者主页&#xff1a; &#x1f517;进朱者赤的博客 精选专栏&#xff1a;&#x1f517;经典算法 作者简介&#xff1a;阿里非典型程序员一枚 &#xff0c;记录在大厂的打怪升级之路。 一起学习Java、大数据、数据结构算法&#xff08;公众号同名&#xff09; ❤️觉得文章还…

java文件夹文件比较工具

import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashSet; import java.util.Set;public class FolderFileNames {public static void main(String[] args) {// 假设您要读取的文件夹路径是 &q…

代码随想录-算法训练营day12【休息,复习与总结】

代码随想录-035期-算法训练营【博客笔记汇总表】-CSDN博客 ● day 12 周日休息&#xff08;4.14&#xff09; 目录 复习与总结 0417_图论-太平洋大西洋水流问题 0827_图论-最大人工岛 复习与总结 二刷做题速度提升了一大截&#xff0c;ヾ(◍∇◍)&#xff89;&#xff9e;加…

【IDEA】JRebel LS client not configured

主要原因就是因为 jrebel 的版本跟 idea的版本对不上&#xff0c;或者说jrebel的版本比idea的版本还高&#xff0c;导致出现该错误 查看idea版本 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/a7ba43e6822947318cdb0d0e9d8d65e9.png 获取jrebel 版本 如何处理 …

设计模式:简单工厂模式(Simple Factory)

设计模式&#xff1a;简单工厂模式&#xff08;Simple Factory&#xff09; 设计模式&#xff1a;简单工厂模式&#xff08;Simple Factory&#xff09;模式动机模式定义模式结构时序图模式实现测试模式分析实例&#xff1a;Qt 控件类优缺点适用环境模式应用 设计模式&#xff…

李沐-26 网络中的网络 NiN【动手学深度学习v2】

主要记载关于全局平均池化层&#xff08;Global Average Pooling, GAP&#xff09;中如下两点的理解&#xff1a; 1. GAP的原理 2. 相对于全连接层&#xff0c;GAP具有更少的参数 为了直观地说明全局平均池化层相对于全连接层具有更少的参数&#xff0c;我们可以构造一个简…