自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

o527883184的博客

Asp.Net 从零开始

  • 博客(27)
  • 资源 (4)
  • 问答 (5)
  • 收藏
  • 关注

原创 6.一切开始的地方

有时通过读书去学习,却发现不懂的更多,于是耐着心去读,不知不竟不知道在读些什么。对于一个网站,更确切地说是对于一个浏览网页的用户而言,一切的开始大抵是在浏览器输入一个网址或点击一个链接,然后随着短暂的等待一切就看似结束了。当然,从输入地址到看到页面远非感观上这么简单,不去说网址到IP再到服务器,只简单说一说服务端是怎样找到浏览器请求的网页数据。在最初接触静态页面时,我曾简单的以为,每当点击...

2018-08-03 12:03:36 489

原创 5.DAL升级——Lambda表达式动态拼接生成

在框架搭建-三层架构关于DAL层数据操作中,BaseDAL提供了一些基础的增删改查操作,其操作的实现是根据直接提供的Lambda表达式。 直接提供Lambda表达式虽然方便但是对开发人员有技术要求(并非每个人都熟练掌握Lambda表达式)、Lambda表达式的书写易于出错且个人书写风格不同等,都表明动态拼接生成Lambda表达式是一种更好的选择。以下是借鉴诸多网友并自己封装的一个Lamb...

2018-05-07 11:21:18 1792

原创 4.新增/编辑页面基类-EditPageBase<T>

EditPageBase为泛型抽象类,继承自FuncPageBase 泛型是具有占位符(类型参数)的类、结构、接口和方法,这些占位符是类、结构、接口和方法所存储或使用的一个或多个类型的占位符。泛型集合类可以将类型参数用作它所存储的对象的类型的占位符;类型参数作为其字段的类型及其方法的参数类型出现。泛型方法可以将其类型参数用作其返回值的类型或者其某个形参的类型。允许对个别泛型的类型参数进行约...

2018-04-03 10:59:59 642

原创 3.多层基类-Page、Common、Func

继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。 PageBase.cs——继承自MVC Controller 属性包含FormId、FormMode,作用见注释;同时还有对当前请求上下文HttpContext的处理,用以避免当前请求上下文为NULL的情况发生。...

2018-03-08 19:45:54 818

原创 2.框架搭建-三层架构

在框架搭建-MVC分离中实现了mvc的Model、View、Controller分离,本文将在此基础上进行三层架构的搭建。项目解决方法图及BLL(业务逻辑层)、DAL(数据访问层)思维导图如下: 为便于理解需先了解温习几个概念接口:接口定义了所有类继承接口时应遵循的语法合同,接口提供了派生类应遵循的标准结构。派生类:当创建一个类时,程序员不需要完全重新编写新的数据成员和成员函数,

2018-01-30 18:46:03 907

原创 1.框架搭建-Model、View、Controller分离

项目整体采用mvc+三层架构方式搭建 在三层架构的基础上(view bll dal)将mvc的控制器(controller)、视图(view)和实体(model)分离成独立项目【mvc中使用area区域可对不同项目进行划分,但随着项目数量的增加会使得项目结构比较混乱,如下图所示原项目架构】 MVC中Model View Controller分离成独立项目学习借鉴于MVC4 Model

2018-01-21 21:08:32 940

原创 用户登录(二)

/** 本篇文章主要分享内容 1. 得到用户上下文 2. 构建简单基类 3. 使用cookie及session存储信息 */ // UserLogin方法,根据得到的用户名、密码及是否记住密码三个参数完成登录验证并得到用户上下文/// &lt;summary&gt;/// 用户登录/// 创建人:李子玉/// 日期:2017-07-31 19:43:11/// &lt;...

2017-08-23 15:12:50 577

原创 .NET实现多图拼接(拼图)

拼图原理及流程: 拼图是将多个图片对象(Image/Bitmap继承自Image)重新绘制到一个图片对象,即最终的拼图对象流程:获取到图片对象,可通过本地或数据流获取更具多个图片对象计算出最终生成的图片的宽高,以此初始化一个新的图片对象(拼图对象)以像素点的方式,将要拼图的各个图片绘制到初始化的拼图对象保存最终生成的图片,并释放图片对象(图片对象继承IDisable接口,使用using()

2017-08-18 20:38:09 6717 3

原创 用户登录(一)

/** 本篇文章主要分享内容: 1. MVC中用户登录 2. js脚本与服务器端交互完成登录 3. js AJAX封装 */ // 对于管理系统而言登录必不可少,且登录不仅仅只是简单的用户信息验证。本文重点仅为服务器端简单登录验证及完成前后端交互。// 首先为服务器端代码,定义方法名为Login,并限制请求方式为post/// /// 登录 /// 创建人:李子玉 //...

2017-07-23 00:20:58 858

原创 文章/网站分享工具——百度分享

今天分享一个小工具,百度分享,十分简单。今天就是贴代码 js初始化参数(这里只用到页面分享功能,图片分享功能和画词分享功能稍厚给出网址,可自行查看API)@* 分享 *@<script> window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "@V

2017-07-03 21:39:53 2284 1

原创 MVC JavaScript() 实现后端执行/调用JS脚本

在mvc中,JavaScriptResult可非常简单的实现在action返回时执行一段后端写的js脚本或者调用前端的js方法,具体如下。 1.在后端编写并执行js脚本 // 在后端编写并执行js方法showMsg protected ActionResult CloseDialog(int closeType) { return JavaScript("fu

2017-06-26 09:15:45 13702 1

转载 图片延时加载

// 图片延时加载(调用lazyLoad.init([html标签])对标记为需要延时加载的图片进行延时加载) lazyLoad = (function () { // 存储页面延时加载元素的对象{} var map_element = {}; // 保存延时加载的元素 var element_obj = []; //需要延时加载的图片数量

2017-02-16 09:21:41 540

原创 C#基础总结

总结C#和.NET的关系 C#是一门开发语言,.NET是开发平台,C#利用.NET提供的类库进行开发公共语言运行时(库)CLR 各种语言通过公共类型系统CTS→中间语言MSIL (语言无关性,共用一个开发平台)垃圾回收机制GS,垃圾回收器是通过自主的算法自主执行垃圾回收,垃圾回收器在执行垃圾回收时,会遍历数据区域找到没有被任何指针所指向的数据区域(指向null),将其释放即时编译器...

2016-05-11 15:39:37 404

原创 c#文件操作

创建文件夹创建文件对文件写入、读取 Directory.CreateDirectory("d:/new");//创建文件夹 //File.Create("d:/new/new.jpg"); File.Create("d:/new/new.txt");//创建文件,需保证文件夹存在 File.Append

2016-04-19 16:20:44 388

原创 C# 使用FileStream文件流对文件进行读取写入

主要用到的方法1.Directory.GetParent(pathName).ToString() + “\” + pathName;//getparent()方法 通过文件名获取绝对路径(不含文件名)2.FileStream fs = new FileStream(fullPath, FileMode.OpenOrCreate);//实例化一个文件流,指定文件完整路径,设置模式为打开或在不存在时创

2016-04-19 15:20:57 7715

原创 SQL触发器简单实例

DELETE触发器CREATE TRIGGER DELUser ON UserInfo--创建一个DELETE触发器FOR DELETE--定义出发条件ASdeclare @id intselect @id = userid from deleted--临时表deleted,在每次执行删除后生成,获取到被操纵USERIDprint '删除成功'DELETE USERBed WHERE U

2016-04-19 09:40:57 1422

原创 C#&&SQL 事务

存储过程写法use UserManageALTER PROC ADDUser ASBEGIN begin tran adduser--开始事务 begin try INSERT INTO USERINFO VALUES('Root','123','FALSE') INSERT INTO USERBED VALUES('1',@@ID

2016-04-18 19:02:06 376

原创 C# SQL带传入、输出参数及返回值的存储过程

/// <summary> /// 带传入参数的存储过程 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button3_Click(object sender, EventArgs

2016-04-17 22:48:47 5350

原创 C#中使用SQL语句与存储过程(非查询)

using System; using System.Configuration; using System.Data.SqlClient; using System.Data;namespace ProcedureTest { public partial class Add : System.Web.UI.Page { protected void

2016-04-17 22:30:10 674

原创 C#序列化与反序列化总结

总结 /*XMLSerializer XML序列化器*/ /// <summary> /// 1.xml序列化必须添加 using System.Xml.Serialization /// 2.xml序列化可以序列化类型中的属性、公开字段,不能序列化私有字段 /// 3.xml序列化可以在数据类型中使用[XmlIgnore]特性来标识该

2016-04-16 21:45:12 814

原创 SQL存储过程分配宿舍实例

CREATE DATABASE DBStuManageuse DBStuManageCREATE TABLE TBROOM( ROOMID INT IDENTITY(1,1) primary key, RoomNumber INT , RoomBedCount INT, studentID INT)select * from TBROOMCREATE TABL

2016-04-16 21:14:42 1762

原创 SQL存储过程登陆实例

–USE [UserManage] –GO–DECLARE @return_value int, – @result nvarchar(50)–EXEC @return_value = [dbo].[UserLogin] – @name = root, – @pwd = 123, – @result = @result OUTPUT–SELEC

2016-04-16 21:09:12 655

原创 SQL存储过程总结

CREATE PROCEDURE MyProc–创建存储过程 AS BEGIN SELECT 1–执行输出语句 END GOALTER PROCEDURE MyProc–修改存储过程 AS BEGIN SELECT GETDATE()–执行输出语句 END GOALTER PROCEDURE MyProc–变量声明赋值 AS BEGIN declare @a int,

2016-04-15 21:47:34 318

原创 SQL常用语句(补)

create database dbOrder use dbOrder create table OrderTb ( orderid int not null, ) create table OrderListTb ( orderListid int identity(1,1) primary key, orderid int, orderLine

2016-04-15 21:44:02 289

原创 SQL常用语句

CREATE DATABASE dbTest–建库 USE dbTest CREATE TABLE tbTestOne –建表 ( ID int primary key identity(1,1),–主键 自增 Name nvarchar(50) NOT NULL, Sex BIT NOT NULL, Age INT NOT NULL ) CREAT

2016-04-15 21:42:07 494

原创 委托与事件总结

委托,描述具有相同 返回值类型和传入参数列表(参数个数及类型) 的一类方法(方法的签名),将方法当作参数传递到另一个方法中,并可以在方法中调用传入方法 事件是对委托的封装,要求满足委托所定义的类型的方法才能被调用执行观察者模式 -优点:低耦合 -观察者模式下,由观察者接收订阅者的订阅(方法),当观察者发现条件满足时(规定的触发条件),执行已订阅的方法重点内容给添加事件添加方法的三种方法类型

2016-04-12 16:25:59 410

原创 泛型总结

/// 泛型是包含类型参数的一种类型 /// 泛型,实质是为了避免大量重构而将传入参数类型作为变量进行传递来实现重构的效果 /// T 在方法位置进行声明为 泛型方法,在类的位置进行声明为 泛型类,T代表了传入参数的类型 /// 声明方式 ,例 class MyList, /// 一个泛型类中的方法不一定是泛型方

2016-04-10 22:56:02 290

ZheYK.EditPageBase

4.新增/编辑页面基类-EditPageBase<T> 在mvc中EF默认会缓存查询过的数据。在编辑的情况下,需要先在一个Action查询数据然后在另一个Action中更新数据,如果更新时所用实体非查询所得实体则会报错或更新后查询到的数据并未发生更改。网上多推荐使用AsNoTracking()查询,个人感觉浪费了EF的缓存功能,同时还会导致在删除实体时出现错误,需要额外处理,不仅麻烦而且降低了系统的稳定性在这里分别使用Entity与OldEntity来区分新增和更新、删除。新增时,一般情况只需new实体返回即可,而编辑时所有的操作(更新/删除)均是对查询到的实体进行操作。

2018-04-03

ZheYK.Base

多层基类-Page、Common、Func。继承是面向对象程序设计中最重要的概念之一。继承允许我们根据一个类来定义另一个类,这使得创建和维护应用程序变得更容易。同时也有利于重用代码和节省开发时间。

2018-04-03

ZheYK.IBLL

IBLL类库接口 IBLL为业务逻辑层接口类库,为以后面对不同数据库提供扩展,对业务逻辑层的方法进行约束,同时面向接口降低程序的耦合性以及提升程序的可扩展性。

2018-02-01

ZheYK.IDAL

ZheYK.IDAL类库接口 IDAL为数据访问层接口类库,为以后面对不同数据库提供扩展,对数据访问层的方法进行约束,同时面向接口降低程序的耦合性以及提升程序的可扩展性。

2018-02-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除