MVC——三层架构笔记、1
三层架构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的更多相关文章
- 服务器文档下载zip格式 SQL Server SQL分页查询 C#过滤html标签 EF 延时加载与死锁 在JS方法中返回多个值的三种方法(转载) IEnumerable,ICollection,IList接口问题 不吹不擂,你想要的Python面试都在这里了【315+道题】 基于mvc三层架构和ajax技术实现最简单的文件上传 事件管理
服务器文档下载zip格式 刚好这次项目中遇到了这个东西,就来弄一下,挺简单的,但是前台调用的时候弄错了,浪费了大半天的时间,本人也是菜鸟一枚.开始吧.(MVC的) @using Rattan.Co ...
- MVC三层架构编程(Dao、service、servlet 之间的关系)
木哈哈~先开心一会儿,人生的第一篇博客aaa.我一定好好写.不过之前也没怎么看别人写过,还是有点小激动呢,加油.好好总结,会总结的宝宝才会有提高! 今天想总结一下mvc三层架构模型编程,宝宝学习不怎么 ...
- Angular JS从入门基础 mvc三层架构 常用指令
Angular JS从入门基础 mvc模型 常用指令 ★ 最近一直在复习AngularJS,它是一款优秀的前端JS框架,已经被用于Google的多款产品当中.AngularJS有着诸多特性,最为核心 ...
- MVC三层架构搭建
MVC三层架构搭建 项目主要是用三层来搭建项目,三层分为表现层,数据层和业务层.项目用了目前比较流行的IOC架构.目前流行的IoC 框架有AutoFac,Unity,Spring.NET等,项目中选用 ...
- Asp.Net MVC三层架构之autofac使用教程
开发环境:vs2015..net4.5.2.mvc5.ef6 Autofac简介 IOC控制反转(Inversion of Control,缩写为IOC),Autofac是一个开源的依赖注入框架,Au ...
- MVC三层架构模式编程思想 JSP-Servlet-JavaBean
MVC(Mdodel-View-Controller)编程模式.把一个Java应用分成三层:模型层.视图层.控制层,各层分别实现各层的功能,整个过程见下图就一目了然了. watermark/2/tex ...
- MVC三层架构
需求: 注册登录: # 知识补充: >> MVC模型: |-- M 模型: |-- V 视图: |-- >> 基本概念: |-- 层级之间的调用关系: |-- V层接收前台数据 ...
- 软件架构设计学习总结(18):MVC三层架构在各框架(jsp+servlet + Struts1+ Struts2+ springMVC)中的特征
1.基于web开发中最原始的jsp+Servlet 图形化理解jsp+servlet结构: 1.从结构上分析jsp+servlet图解原理: 在基于mvc设计模式下的最原始的jsp+Servlet ...
- JSP--JSP语法--指令---九大隐式对象--四大域对象--JSP内置标签--JavaBean的动作元素--MVC三层架构
一.JSP 原理:JSP其实就是一个servlet. Servlet负责业务逻辑处理,JSP只负责显示.开发中,JSP中不能有一行JAVA代码 二.JSP语法 1. JSP模板元素:JSP中HTML标 ...
随机推荐
- [CMS漏洞]EmpireCMS_V7.5的一次审计【转载】
i春秋作家:Qclover 原文来自:EmpireCMS_V7.5的一次审计 0x01 概述 最近在做审计和WAF规则的编写,在CNVD和CNNVD等漏洞平台寻找各类CMS漏洞研究编写规则时顺便抽空对 ...
- 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(' ...
- 报错:使用java api连接redis集群时报错 READONLY You can't write against a read only slave.
报错: READONLY You can’t write against a read only slave. 报错原因: 因为连接的是从节点,从节点只有读的权限,没有写的权限 解决方案: 进入red ...
- PyMouse、PyKeyboard用python操作鼠标和键盘
1.PyUserInput 简介 PyUserInput是一个使用python的跨平台的操作鼠标和键盘的模块,非常方便使用.支持的平台及依赖如下: Linux - Xlib Mac - Quartz, ...
- 猎豹网校C++ Primer学习笔记2
14.数组 数组定义时的长度必须是在编译时就能确定的值. 全局数组会自动初始化为0. size_t 15.指针 其指向类型要相同. 指针和引用: 指针可以先不初始化,可以修改指向.有指针的指针. 16 ...
- 数据库info.sql
/* Navicat MySQL Data Transfer Source Server : loaderman Source Server Version : 50540 Source Host : ...
- attrib命令能用批处理实现文件夹批量显示吗?
attrib H:\* -s -h -a -r /s /d 加上/s /d参数就行了.(H表示你的U盘盘符)
- 关于mysql索引---联合索引
结论: mysql联合索引,联合索引以哪个字段开始很重要. 如果 联合索引字段为 1,2,3,4 那么如果查询条件为 6,7,8,1 这样也会走上面的联合索引 但是如果查询条件不是从1开始那么则 ...
- php上传超大文件
1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...
- 集合循环删除问题-报错java.util.ConcurrentModificationException解析
java.util.ConcurrentModificationException 异常问题详解 环境:JDK 1.8.0_111 在Java开发过程中,使用iterator遍历集合的同时对集合进行修 ...