设为首页 加入收藏

TOP

一般处理程序加简单三层实现增删查改(1)(一)
2019-09-03 00:47:41 】 浏览:62
Tags:一般 处理 程序 简单 实现 增删 查改

一般处理程序通常实现IHttpHandler接口,ashx效率比较高效,webform(aspx)比较消耗资源,mvc效率刚好介于两者之间

一般处理程序处理过程(HttpHandler)

IIS处理不了这种后缀程序通过映射表将该程序传递给ASPNET_ISAPI.DLL的程序,然后又将请求转给了网站程序
网站程序调用HttpRuntime类的静态方法处理请求,有以下步骤:
1,实现System.Web.IHttpHandle特殊接口的类
实现了该接口的类都能作为一个外部请求的目标程序
2,创建 HttpContext context 数据上下文对象,用于处理请求的所以参数数据.
(主要是httpRequest-->用于Form表单数据url 参数 和httpResponse()主要包含了FileStream对象用于保存输出的数据)
3,分析请求报文,并将数据封装到HttpWorkerRequest对象对应的属性
并调用HttpApplicationFactory的类中的静态方法来创建HttpApplication对象
(实际上是先通过httpApplication池 看有没有空闲的  没有才创建),那么
该对象会处理此次请求的所有运行过程
4,httpContex对象传入到httpApplication的时候就可以调用页面类中的ProcessRequest方法

 

好了一般处理程序就说到这里吧!

开始我来实现我的简单三层

第一步我首先搭建了DAL层(数据访问层)

因为是直接与数据库发生关系的,所以我新建了一个HelperSQL.cs类



using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace StudentManagement.DAL { //需要系统配置;系统设定;系统设置;查看系统配置程序集
    using System.Configuration; using System.Data.SqlClient; using System.Data; public class HelperSQL { //在ui的配置文件中配置AppSettings
       public static string str = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]; private static SqlConnection connection; public static SqlConnection Connection { get { //判断是否有这个连接没有
               if (connection == null) { //创建连接
                   connection = new SqlConnection(str); //打开连接
 connection.Open(); } //判断连接是否是关闭的
               else if(connection.State==System.Data.ConnectionState.Closed){ //打开连接
 connection.Open(); } //判断连接是否中断
               else if (connection.State == System.Data.ConnectionState.Broken) { //先关闭连接
 connection.Close(); //打开连接
 connection.Open(); } //返回连接
               return connection; } } public static int ExecuteCommand(string strsql) { //传入数据库命令和连接
           SqlCommand sqlcmd = new SqlCommand(strsql, Connection); //执行语句返回受影响的行数
           int result = sqlcmd.ExecuteNonQuery(); return result; } public static int ExecuteCommand(string str, params SqlParameter[] values) { //传入数据库命令和连接
           SqlCommand sqlcmd = new SqlCommand(str, Connection); //增加参数
 sqlcmd.Parameters.AddRange(values); return sqlcmd.ExecuteNonQuery(); } public static DataSet GetDataSet(string str) { //创建一个内存缓存
           DataSet ds = new DataSet(); //传入命令和连接
           SqlCommand sqlcmd = new SqlCommand(str,Connection); //创建一个桥接器
           SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmd); //写入内存
 sqlda.Fill(ds); //返回
           return ds; } public static DataSet GetDataSet(string str, params SqlParameter[] values) { //创建一个内存缓存
           DataSet ds = new DataSet(); //传入命令和连接
           SqlCommand sqlcmd = new SqlCommand(str, Connection); //增加参数
 sqlcmd.Parameters.AddRange(values); //打开桥连接
           SqlDataAdapter sqlda = new SqlDataAdapter(sqlcmd); //写入到内存
 sqlda.Fill(ds); //返回
           return ds; } public static DataSet StoredProcedure(string strName, params IDataParameter[] parmenters) { using (SqlConnection connection = new SqlConnection(str)) { //创建一个内存缓存
               DataSet ds = new DataSet(); //创建一个桥连接
               SqlDataAdapter sqlda = new SqlDataAdapter(); //告诉桥连接这个是存储过程
               sqlda.SelectCommand = StoredProcedureCommand(connection, strName, parmenters); //写入内存
 sqlda.Fill(ds); //返回
               return ds; } } private static SqlCommand StoredProcedureCommand(SqlConnection sqlcc, string strName, IDataParameter[] parmenters) { //传入存储过程名称和连接数据库命令
           SqlCommand sqlcmd = new SqlCommand(strName, sqlcc); //告诉数据库这个是存储过程
           sqlcmd.CommandType = CommandType.StoredProced
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇二维码的生成细节和原理【转】 下一篇ADO.NET中的Connection详解

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目