ASP.Net实现玩具管理(三层架构,两项数据相乘)

news2024/11/18 17:19:27

目录

演示功能:

点击启动生成页面

步骤:

1、建文件

​编辑

2、添加引用关系

3、根据数据库中的列写Models下的XueshengModels类

4、DAL下的DBHelper(对数据库进行操作)

5、DAL数据访问层下的service文件

6、BLL业务逻辑层下调用DAL的文件

8、这个地方可以进行计算得出小计的数字

9、ui表现层主界面前端部分

10、ui表现层主界面后端部分


演示功能:

点击启动生成页面

步骤:

1、建文件

下图是三层架构列表,Models里面有模拟数据库中列的类,DAL中有DBHelper和service,BLL中有BllManager文件用于ui界面直接调用

建照片文件图片,数据夹用于展示库存地址 

2、添加引用关系

DAL引用Models文件,BLL引用DAL和Models文件,主文件WebApplication1引用Bll和Models

3、根据数据库中的列写Models下的XueshengModels类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Models
{
  public   class GoodsModel
    {
        private string goodsID;

        public string GoodsID
        {
            get { return goodsID; }
            set { goodsID = value; }
        }
      private string goodsName;

      public string GoodsName
      {
          get { return goodsName; }
          set { goodsName = value; }
      }

      private  string goodsPic;

      public  string GoodsPic
      {
          get { return goodsPic; }
          set { goodsPic = value; }
      }
      private  string goodsPrice;

      public  string GoodsPrice
      {
          get { return goodsPrice; }
          set { goodsPrice = value; }
      }
      private string goodsStock;

      public string GoodsStock
      {
          get { return goodsStock; }
          set { goodsStock = value; }
      }

      private string xiaoji;

      public string Xiaoji
      {
          get { return xiaoji; }
          set { xiaoji = value; }
      }
      private string zongji;
        public string Zongji
{
  get { return zongji; }
  set { zongji = value; }
}}
}

4、DAL下的DBHelper(对数据库进行操作)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;

namespace DAL
{
 public    class DBHelper
    {
     public static string connstr = "server=.;database=GoodsDB;uid=sa;pwd=123123";
     public static SqlConnection conn = null;
     public static void connect() {
         if (conn==null)
         {
             conn = new SqlConnection(connstr);
         }
         conn.Close();
         conn.Open();
     
     }
     public static bool NoQuery(string sql) {
         connect();
         SqlCommand cmd = new SqlCommand(sql,conn);
       int ret=  cmd.ExecuteNonQuery();
       conn.Close();
       return ret > 0;
     }
     public static SqlDataReader Read(string sql)
     {
         connect();
         SqlCommand cmd = new SqlCommand(sql, conn);
         return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
     }



    }
}

5、DAL数据访问层下的service文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
namespace DAL
{
  public   class GoodsService
    {
      public static List<Models.GoodsModel> ChaXun()
      {
       SqlDataReader read=   DBHelper.Read("select * from Goods");
          List<Models.GoodsModel> list = new List<Models.GoodsModel>();
          int zong = 0;
          while (read.Read())
          {
              Models.GoodsModel model = new Models.GoodsModel();
              model.GoodsID = read["GoodsID"].ToString();
              model.GoodsName = read["GoodsName"].ToString();
              model.GoodsPic = read["GoodsPic"].ToString();
              model.GoodsPrice = read["GoodsPrice"].ToString();
              model.GoodsStock = read["GoodsStock"].ToString();
              model.Xiaoji = (int.Parse(read["GoodsStock"].ToString()) * int.Parse(read["GoodsPrice"].ToString())).ToString();
            
              
               zong  += int.Parse(read["GoodsStock"].ToString()) * int.Parse(read["GoodsPrice"].ToString());
               model.Zongji = zong.ToString();
              list.Add(model);
          }
          return list;
      }
      public static List<Models.GoodsModel> MoCha(string name)
      {
          string sql = string.Format("select * from Goods where GoodsName like '%{0}%'",name);
          SqlDataReader read = DBHelper.Read(sql);
          List<Models.GoodsModel> list = new List<Models.GoodsModel>();
          int zong = 0;
          while (read.Read())
          {
              Models.GoodsModel model = new Models.GoodsModel();
              model.GoodsID = read["GoodsID"].ToString();
              model.GoodsName = read["GoodsName"].ToString();
              model.GoodsPic = read["GoodsPic"].ToString();
              model.GoodsPrice = read["GoodsPrice"].ToString();
              model.GoodsStock = read["GoodsStock"].ToString();
              model.Xiaoji = (int.Parse(read["GoodsStock"].ToString()) * int.Parse(read["GoodsPrice"].ToString())).ToString();

              zong += int.Parse(read["GoodsStock"].ToString()) * int.Parse(read["GoodsPrice"].ToString());
              model.Zongji = zong.ToString();
              list.Add(model);
          }
          return list;
      }


    }
}

6、BLL业务逻辑层下调用DAL的文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
 public   class GoodsManger
    {

     public static List<Models.GoodsModel> ChaXun() {
         return DAL.GoodsService.ChaXun();
     }
     public static List<Models.GoodsModel> MoCha(string name) {
         return DAL.GoodsService.MoCha(name);
     }
    }
}

8、这个地方可以进行计算得出小计的数字

9、ui表现层主界面前端部分

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication1.WebForm1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Label">商品名称:</asp:Label><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
        <asp:Button ID="Button1" runat="server" Text="按关键词查询" OnClick="Button1_Click" />
        <asp:Repeater ID="Repeater1" runat="server" OnItemCommand="Repeater1_ItemCommand">
            <HeaderTemplate>
                <table border="1px">
                    <tr>
                        <th>ID</th>
                         <th>商品名</th>
                         <th>图片</th>
                          <th>价格</th>
                         <th>库存</th>
                         <th>小计</th>
                         <th>操作</th>
                    </tr>
                
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                        <td><%#Eval("GoodsID") %></td>
                    <td><%#Eval("GoodsName") %></td>
                     <td><img height="50px" width="100px" src="Img/<%#Eval("GoodsPic")%>"/></td>
                     <td><%#Eval("GoodsPrice") %></td>
                     <td><%#Eval("GoodsStock") %></td>
                    
                  <td><%#Eval("Xiaoji") %></td>

                     <td><a href="#">删除</a></td>
                    </tr>
               
            </ItemTemplate>
            <FooterTemplate>
              
               
                </table>
           
            </FooterTemplate>


        </asp:Repeater>
           <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
    </div>
    </form>
</body>
</html>

10、ui表现层主界面后端部分

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace WebApplication1
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Repeater1.DataSource=BLL.GoodsManger.ChaXun();
                Repeater1.DataBind();
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Repeater1.DataSource = BLL.GoodsManger.MoCha(TextBox1.Text.ToString());
            Repeater1.DataBind();
        }

        protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
        {

        }
    }
}

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

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

相关文章

计算机服务器中了faust勒索病毒怎么解密,faust勒索病毒解密工具流程

在互联网飞速发展的今天&#xff0c;越来越多的企业走向了数字化办公模式&#xff0c;许多企业开始利用网络计算机开展各项工作业务&#xff0c;网络也为企业的生产效率提供了极大便利&#xff0c;但网络中存在许多恶意威胁。近日&#xff0c;云天数据恢复中心接到许多企业的求…

【C++】NULL值在C、C++中的歧义

NULL实际是一个宏&#xff0c;在头文件stddef.h中是这么定义的&#xff1a; #ifndef NULL #ifdef __cplusplus #define NULL 0 #else #define NULL ((void *)0) #endif #endif从定义可以看出NULL可能是0&#xff0c;也可能是(void*)0&#xff0c;但C将NULL看做0&#xff0…

记一次用Arthas排查Redis连接数增加问题(附:redis连接池优化)

有一次生产环境发包后&#xff0c;发现redis连接数变多了&#xff0c;由于改的代码比较多&#xff0c;不确定是哪里出了问题。因此用Arthas来进行了一次排查。 项目比较多&#xff0c;有用到 jedis、lettuce、redisson 3种客户端。 项目用到的 SpringContextHolder 代码如下&…

视频剪辑大师:批量快进慢放,让你的视频瞬间生动起来!

在数字时代&#xff0c;视频已经成为我们生活中不可或缺的一部分。无论是工作中的演示、学习中的教程&#xff0c;还是娱乐中的短片、Vlog&#xff0c;我们都需要对视频进行精细的剪辑和处理&#xff0c;以呈现出最佳的效果。然而&#xff0c;面对大量的视频文件&#xff0c;如…

操作系统(1)——学习导论(Ⅲ)

目录 小程一言专栏链接: [link](http://t.csdnimg.cn/6grrU)本篇文章因内容需要&#xff0c;且依靠书中内容达不到小程想要的效果&#xff0c;so部分内容依赖其他网络资源 学习导论&#xff08;Ⅲ&#xff09;操作系统相关概念进程——Process线程——Thread调度——Scheduling…

【漏洞复现】Linksys E2000 position.js 身份验证绕过漏洞(CVE-2024-27497)

0x01 产品简介 Linksys E2000是一款由思科&#xff08;Cisco&#xff09;品牌推出的无线路由器&#xff0c;它是一款支持2.4GHz和5GHz双频段的无线路由器&#xff0c;用户可以避开拥挤的2.4GHz频段&#xff0c;独自享受5GHz频段的高速无线生活。 0x02 漏洞概述 Linksys E200…

编译Linux内核并修改版本号后缀为学号-Ubuntu22.04中编译安装Linux内核6.7.8

前言&#xff1a;实验课要求下载最新版本Linux内核并修改版本号&#xff0c;本人在Vmware中Ubuntu22.04中实现&#xff0c;花三天时间查阅大量网站资料。记录一下误打误撞成功的过程&#xff0c;希望对你们有帮助。 目录 一、常规安装步骤&猜想Ubuntu与gcc版本过低 二、安…

docker总结,一套搞定,常用命令,项目部署,jar包打包成镜像/容器

docker 归总 一、学习路线 1、学习视频&#xff08;黑马程序员&#xff09; &#xff08;https://www.bilibili.com/video/BV1HP4118797/?spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source6acc7ed97919d92de048f2b1e5803427&#xff09; 2、…

python爬虫反反爬之图片验证

文章目录 发现宝藏一、ddddOcr&#xff08;针对图形验证码&#xff09;1. 工具介绍2. 安装及环境支持3. 识别示例14. 识别示例2 二、Tesseract&#xff08;标准OCR识别&#xff09;1. 工具介绍2. 配置系统环境3. 识别示例14. 识别示例23. 识别示例3 发现宝藏 前些天发现了一个…

C++ 队列

目录 队列的应用场景 1、429. N 叉树的层序遍历 2、 103. 二叉树的锯齿形层序遍历 3、662. 二叉树最大宽度 4、515. 在每个树行中找最大值 队列的应用场景 广度优先搜索&#xff08;BFS&#xff09;&#xff1a;队列是广度优先搜索算法的核心数据结构。在BFS中&#xff…

如何将应用一键部署至多个环境?丨Walrus教程

在 Walrus 平台上&#xff0c;运维团队在资源定义&#xff08;Resource Definition&#xff09;中声明提供的资源类型&#xff0c;通过设置匹配规则&#xff0c;将不同的资源部署模板应用到不同类型的环境、项目等。与此同时&#xff0c;研发人员无需关注底层具体实现方式&…

Redis精讲

redis持久化 RDB方式 Redis Database Backup file (redis数据备份文件), 也被叫做redis数据快照. 简单来说就是把内存中的所有数据记录到磁盘中. 快照文件称为RDB文件, 默认是保存在当前运行目录. [rootcentos-zyw ~]# docker exec -it redis redis-cli 127.0.0.1:6379> sav…

02- 使用Docker安装RabbitMQ

使用Docker安装RabbitMQ 下载安装镜像 方式一: 启动docker服务,然后在线拉取 # 在线拉取镜像 docker pull rabbitmq:3-management# 使用docker images查看是否已经成功拉取方式二: 从本地加载 ,将RabbitMQ上传到虚拟机中后使用命令加载镜像即可 docker load -i mq.tar启动M…

你必须要知道外贸独立站的那些事

导语 独立站&#xff0c;顾名思义就是具有独立域名的网站。对于跨境电商来说&#xff0c;独立站就是让他们脱离第三方束缚的一个平台。 简单来说就是自己建立一个属于自己的电商平台&#xff0c;然后上传商品出售&#xff0c;但是需要自己去做营销、做推广。 一、自建独立站的好…

运维工具之ventoy安装及使用简介

一、Ventoy简介 简单来说&#xff0c;Ventoy是一个制作可启动U盘的开源工具。有了Ventoy你就无需反复地格式化U盘&#xff0c;你只需要把 ISO/WIM/IMG/VHD(x)/EFI 等类型的文件直接拷贝到U盘里面就可以启动了&#xff0c;无需其他操作。你可以一次性拷贝很多个不同类型的镜像文…

Redis核心数据结构之跳跃表

跳跃表 概述 跳跃表(skiplist)是一种有序数据结构&#xff0c;它通过在每个节点中维持多个指向其他节点的指针&#xff0c;从而达到快速访问节点的目的。跳跃表支持平均O(logN)、最坏O(N)复杂度的节点查找&#xff0c;还可以通过顺序性操作来批量处理节点。在大部分情况下&am…

基于PHP构建的HTML5点餐系统的设计13.91

随着互联网时代的发展&#xff0c;人们的生活方式正在发生改变。传统的餐饮行业也正在发生变革。人们不再满足过去的点餐方式&#xff0c;需要更好的体验。本课题旨在结合点餐系统的技术优势&#xff0c;设计一个能够方便顾客与商家&#xff0c;并且节约人力成本以及可以很好地…

访问一次网站的全过程

目录 流程图&#xff1a; 一、应用层开始 1. 在浏览器输入https://www.baidu.com 2. DNS获取IP地址 3. 根据HTTP协议生成HTTP请求报文 应用层结束 二、传输层开始 4. TCP三次握手 传输层结束 三、网络层开始 5. IP寻址 6. ARP协议获取MAC地址 网络层结束 四、数据…

Modified Bessel Function of the First Kind

Abstract 最近接触到 von Mises–Fisher distribution, 其概率密度如下: f p ( x ; μ , κ ) κ p 2 − 1 ( 2 π ) p 2 I p 2 − 1 ( κ ) e κ μ ⊺ x \begin{aligned} f_{p}(\bm{x}; \bm{\mu}, \kappa) \frac{\kappa^{\frac{p}{2}-1}} {(2\pi)^{\frac{p}{2}} I_{\frac…

linux系统下,配置开机自启脚本常见的5种方法

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 所属的专栏:linux基础与进阶,shell脚本编写实战 景天的主页:景天科技苑 文章目录 linux下设置开机自动运行脚本的5种方法一、编辑/etc/rc.d/rc.local文件1、在自己需要启动的文件目录中编写一个…