ASP.net 简单三层

一.说明

此文是小白在学习张晨光老师的视频教学<<Asp.Net WEB服务器编程技术>>中做的学习笔记,一些知识点也是跟着教程走的,大家也可以去老师的主页去学习,谢谢大家.

这一篇要练习的是,如下课程的代码:
在这里插入图片描述

二.三层

  • UI层(UIL): 主要用于存放与用户交互的展示页面;(网页部分) –顾客

  • 业务逻辑层(BLL): 主要用于存放针对具体问题对数据进行逻辑处理的代码(处理用户请求的类库) –服务员

  • 数据访问层(DAL):主要用于存放对原始数据进行操作的代码,它封装了所有与数据库交互的操作,并为业务逻辑层提供数据服务.(存取数据, 供BLL调用的本质类库) –厨师

详情大家自行搜索,小白采用数据( ^ _ ^ ) 的(ASP.NET 三层架构)

三.创建’顾客’

在我们的新建项目中,添加web项目:
在这里插入图片描述
并创建web窗体:WebForm1.asxp,并填入一下内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="MVC_Test.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">
        菜名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        数量:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" />
    </form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;//我们定义的'业务逻辑层'

namespace MVC_Test
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// 按钮提交事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Button1_Click(object sender, EventArgs e)
        {
        	//在按钮点击后,我们new 一个Waiter对象
            Waiter wt = new Waiter();
            //然后调用方法,传参
            wt.inVeg(TextBox1.Text,Convert.ToInt32(TextBox2.Text));
        }
    }
}

四.创建’服务员’

创建类库:
右击 ‘解决方案’ > 添加 > 新建项目 > 选择 ‘类库(.NET Framework)’ > 下一步
在这里插入图片描述

在这里插入图片描述
然后在BLL中新建类,Waiter.cs,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using DAL;//引用'厨师'

namespace BLL
{
    /// <summary>
    /// 服务员传递参数
    /// </summary>
    public class Waiter
    {
    	//new 一个厨师
        Cook ck = new Cook();
        //点菜 结账
        public void inVeg(string name , int num) {
            ck.inVeg(name,num);
        }
    }
}

服务员准备就位,那么便要与客户交互,所以我们
在这里插入图片描述

在页面层项目 > 右击引用 > 添加引用
在这里插入图片描述
然后在WebForm1.asxp.cs里引用服务员

using BLL;

然后调用其方法(上面的WebForm1.asxp.cs中已经写入)

//在按钮点击后,我们new 一个Waiter对象
Waiter wt = new Waiter();
//然后调用方法,传参
wt.inVeg(TextBox1.Text,Convert.ToInt32(TextBox2.Text));

五.雇佣’厨师’

用相同的方法创建DAL类库,并创建Cook.cs,填入如下代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ToolDBSQL;//这里引用数据库类


namespace DAL
{
    public class Cook
    {
        //点菜 结账
        public void inVeg(string name, int num)
        {
            //连接数据库,操作表
            string sql = string.Format( @"insert into menu values('{0}',{1},'{2}')",name,num,DateTime.Now);
            int a =MyDB.execuSql(sql);
        }
    }
}

厨师准备就位,那么便要与服务员交互,所以我们
在这里插入图片描述

在这里插入图片描述

然后在Waiter.cs里引用厨师

using DAL;//引用'厨师'

然后调用其方法(上面的Waiter.cs中已经写入)

//new 一个厨师
Cook ck = new Cook();
//点菜 结账
public void inVeg(string name , int num) {
	ck.inVeg(name,num);
}

六.制作’食材’

用相同的方法创建ToolDBSQL类库,并创建MyDB.cs,填入如下代码:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using MySql.Data.MySqlClient;

namespace ToolDBSQL
{
    public class MyDB
    {
        public static string DataBase = ConfigurationManager.ConnectionStrings["Conn_example"].ToString();

        static MySqlConnection conn = new MySqlConnection(DataBase);

        //增删改的方法
        public static int execuSql(String sql)
        {
            conn.Open();//打开
            MySqlCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;//执行外部传入的sql语句

            int result = -1;//返回值,默认为-1

            //执行语句,并将返回值赋值
            try
            {
                result = cmd.ExecuteNonQuery();
            }
            finally
            {
                //各种关闭
                cmd.Dispose();
                conn.Close();
            }

            //返回此项返回值
            return result;
        }
    }
}

Web.config加入如下连接数据库代码:

<connectionStrings>
	<add name="Conn_example" connectionString="Database='example';Data Source='127.0.0.1';User Id='root';Password='xxxxxx';charset='utf8';pooling=true"/>
</connectionStrings>

食材准备就位,那么便要与厨师交互,所以我们:
在这里插入图片描述
在这里插入图片描述
然后在Cook.cs里引用食材

using ToolDBSQL;//这里引用数据库类

然后调用其方法(上面的Cook.cs中已经写入)

//连接数据库,操作表
string sql = string.Format( @"insert into menu values('{0}',{1},'{2}')",name,num,DateTime.Now);
int a =MyDB.execuSql(sql);

(一些学习资料:七天学会ASP.NET MVC)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值