三层架构MVC笔记1、

DAL——数据访问层;(专门与数据库交互,增删查改的方法都在这;需引用MODEL层)

BLL——业务逻辑层;(页面与数据库之间的桥梁;需引用DAL、MODEL层)

MODEL——模型层;(一个数据表对应一个Model类,字段属性皆一样,面向对象编程,参数都以MODEL传递;不需引用其他层)

MVC——网页;(一个CONTROLLER对应VIEW下的文件夹,CONTROLLER下的方法对应VIEW该文件夹下的CSHTML;需引用BLL、MODEL层)

DAL参考代码:

Helper——SqlHelper.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Configuration;
using System.Data;
using System.Data.SqlClient; namespace DAL.Helper
{
class SqlHelper
{
private static readonly string connString = ConfigurationManager.ConnectionStrings["connString"].ToString(); /// <summary>
/// 执行增删改方法
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static int Update(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
} /// <summary>
/// 执行返回单一结果查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static object GetSingleResult(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteScalar();
}
catch (Exception ex)
{
throw ex;
}
finally
{
conn.Close();
}
} /// <summary>
/// 执行一个结果集的查询
/// </summary>
/// <param name="sql"></param>
/// <returns></returns>
public static SqlDataReader GetReader(string sql)
{
SqlConnection conn = new SqlConnection(connString);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
}
catch (Exception ex)
{
conn.Close();
throw ex;
}
}
}
}

SysAdminService.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Models;
using System.Data;
using System.Data.SqlClient; namespace DAL
{
public class SysAdminService
{
/// <summary>
/// 根据用户名和密码查询
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
public SysAdmin AdminLogin(SysAdmin objAdmin)
{
string sql = "SELECT AdminName FROM Admins WHERE LoginId='{0}' AND LoginPwd='{1}'";
sql = string.Format(sql, objAdmin.LoginId, objAdmin.LoginPwd);
try
{
SqlDataReader reader = Helper.SqlHelper.GetReader(sql);
if (reader.Read())
{
objAdmin.AdminName = reader["AdminName"].ToString();
reader.Close();
}
else
{
objAdmin = null;
}
}
catch (Exception ex)
{
throw new Exception("应用程序或数据库出错:" + ex.Message);
}
return objAdmin;
}
}
}

BLL参考代码:

SysAdminManager.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Models;
using DAL;
using System.Web; namespace BLL
{
public class SysAdminManager
{
/// <summary>
/// 根据用户名和密码查询
/// </summary>
/// <param name="objAdmin"></param>
/// <returns></returns>
public SysAdmin AdminLogin(SysAdmin objAdmin)
{
objAdmin = new SysAdminService().AdminLogin(objAdmin);
if (objAdmin != null)
{
HttpContext.Current.Session["CurrentAdmin"] = objAdmin;
}
return objAdmin;
} }
}

MODEL参考代码:

SysAdmin.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace Models
{
/// <summary>
/// 管理员类
/// </summary>
[Serializable]
public class SysAdmin
{
public string LoginId { get; set; }
public string AdminName { get; set; }
public string LoginPwd { get; set; } }
}

MVC——Controllers参考代码:

SysAdminController.cs:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Models;
using BLL; namespace StudentManagerMVC.Controllers
{
public class SysAdminController : Controller
{
// GET: SysAdmin
public ActionResult Index()
{
return View("AdminLogin");
} public ActionResult AdminLogin()
{
if (string.IsNullOrEmpty(Request.Params["loginId"].ToString()) || string.IsNullOrEmpty(Request.Params["loginPwd"].ToString()))
{
ViewData["AdminInfo"] = "请输入用户名密码!";
}
else
{
SysAdmin objAdmin = new SysAdmin()
{
LoginId = Request.Params["loginId"].ToString(),
LoginPwd = Request.Params["loginPwd"].ToString()
};
objAdmin = new SysAdminManager().AdminLogin(objAdmin);
if (objAdmin != null)
{
ViewData["AdminInfo"] = objAdmin.AdminName;
}
else
{
ViewData["AdminInfo"] = null;
}
}
return View();
}
}
}

MVC——Views——SysAdmin参考代码:

AdminLogin.cshtml:

@{
Layout = null;
} <!DOCTYPE html> <html>
<head>
<meta name="viewport" content="width=device-width" />
<title>AdminLogin</title>
</head>
<body>
<div>
<form action="/SysAdmin/AdminLogin" method="post">
用户名:<input type="text" name="loginId" />
密码:<input type="text" name="loginPwd" />
<input type="submit" value="登录" />
</form>
@if (IsPost && ViewData["AdminInfo"]!=null)
{
for (var i = ; i < ; i++)
{
<p>@i _ @Request["LoginId"] _ @ViewData["AdminInfo"]</p>
}
}
</div>
</body>
</html>

MVC——三层架构笔记、1的更多相关文章

  1. 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理

    服务器文档下载zip格式   刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...

  2. MVC三层架构编程(Dao、service、servlet 之间的关系)

    木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...

  3. Angular JS从入门基础 mvc三层架构 常用指令

    Angular JS从入门基础  mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心 ...

  4. MVC三层架构搭建

    MVC三层架构搭建 项目主要是用三层来搭建项目,三层分为表现层,数据层和业务层.项目用了目前比较流行的IOC架构.目前流行的IoC 框架有AutoFac,Unity,Spring.NET等,项目中选用 ...

  5. Asp.Net MVC三层架构之autofac使用教程

    开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...

  6. MVC三层架构模式编程思想 JSP-Servlet-JavaBean

    MVC(Mdodel-View-Controller)编程模式.把一个Java应用分成三层:模型层.视图层.控制层,各层分别实现各层的功能,整个过程见下图就一目了然了. watermark/2/tex ...

  7. MVC三层架构

    需求: 注册登录: # 知识补充: >> MVC模型: |-- M 模型: |-- V 视图: |-- >> 基本概念: |-- 层级之间的调用关系: |-- V层接收前台数据 ...

  8. 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征

    1.基于web开发中最原始的jsp+Servlet   图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet ...

  9. JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构

    一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...

随机推荐

  1. [CMS漏洞]EmpireCMS_V7.5的一次审计【转载】

    i春秋作家:Qclover 原文来自:EmpireCMS_V7.5的一次审计 0x01 概述 最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找各类CMS漏洞研究编写规则时顺便抽空对 ...

  2. Main property in package.json defines package entry point

    I know my project's dependencies are installed under node_modules directory. But when I do require(' ...

  3. 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.

    报错: READONLY You can’t write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...

  4. PyMouse、PyKeyboard用python操作鼠标和键盘

    1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...

  5. 猎豹网校C++ Primer学习笔记2

    14.数组 数组定义时的长度必须是在编译时就能确定的值. 全局数组会自动初始化为0. size_t 15.指针 其指向类型要相同. 指针和引用: 指针可以先不初始化,可以修改指向.有指针的指针. 16 ...

  6. 数据库info.sql

    /* Navicat MySQL Data Transfer Source Server : loaderman Source Server Version : 50540 Source Host : ...

  7. attrib命令能用批处理实现文件夹批量显示吗?

    attrib H:\* -s -h -a -r /s /d 加上/s /d参数就行了.(H表示你的U盘盘符)

  8. 关于mysql索引---联合索引

    结论: mysql联合索引,联合索引以哪个字段开始很重要. 如果  联合索引字段为  1,2,3,4 那么如果查询条件为  6,7,8,1 这样也会走上面的联合索引 但是如果查询条件不是从1开始那么则 ...

  9. php上传超大文件

    1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...

  10. 集合循环删除问题-报错java.util.ConcurrentModificationException解析

    java.util.ConcurrentModificationException 异常问题详解 环境:JDK 1.8.0_111 在Java开发过程中,使用iterator遍历集合的同时对集合进行修 ...