- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 数据访问层使用存储过程分页
//分页 public List LoadPageData(int pageIndex, int pageSize, out int total) { DataSet ds = new DataSet(); SqlParameter totalParameter = new SqlParameter("@total
2015-12-31 22:04:15 569
原创 分页
public class MyPage { /// 一页多少条 /// 当前页 /// 总条数 /// public static string ShowPageNavigate(int pageSize, int currentPage, int totalCount) {
2015-12-31 21:57:42 365
原创 SqlHelp
public static class SqlHelper { //连接字符串 private static string conStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString; //增删改 public static int
2015-12-31 20:32:39 520
原创 装箱与拆箱
总结来说:装箱就是将值类型转化成引用类型,拆箱就是就是将引用类型转化成值类型装箱: int n = 10; string s = n.ToString();//这个不是装箱。string与int是完全不同的两种类型,没有父子类关系,所以不可能发生装箱和拆箱,
2015-12-31 13:12:10 440
原创 IComparable与IComparer
1.当我们要对集合进行排序时,集合中的元素必须要是一类元素,且元素的类型实现了IComparable接口 ArrayList arr = new ArrayList() { 0, 8, 32, 4, 2, 432, 5, 234, 54323, 875, 45 }; arr.Sort(); for (int i = 0; i
2015-12-30 14:05:03 604
转载 c#中字符串的内存分配,与驻留池
刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下:String s1 = "Hello";String s2 = "Hello"; //s2和s1的实际值都是“Hello”bool same = (object) s1 == (object
2015-12-30 12:49:31 466
原创 TCP,UDP的区别
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。我们来看看这三次对话的简单过程:主机A向主机B发出连接请求数据包:“我想给你发数据,可以吗?”,这是第一次
2015-12-30 10:41:43 613
原创 T-SQL
1.创建索引create index index_nameon table(column_name)2.视图create view ordersWithNumasselect *,row_number() over(order by oprice desc) as numfrom TblOrders3.触发器create trigger bak_orderon tbl
2015-12-29 20:57:21 455
转载 临时表
利用SQL的全局临时表防止用户重复登录 在我们开发商务软件的时候,常常会遇到这样的一个问题:怎样防止用户重复登录我们的系统?特别是对于银行或是财务部门,更是要限制用户以其工号身份多次登入。 可能会有人说在用户信息表中加一字段判断用户工号登录的状态,登录后写1,退出时写0,且登录时判断其标志位是否为1,如是则不让该用户工号登录。但是这样那势必会带来新的问题:如发生象断
2015-12-29 19:05:53 412
原创 用SQL语句创建存储过程,并执行
一.创建一个存储过程里面有个输出参数outputcreate proc multi@num1 int,@num2 int=10 output --output的功能类似于C#中的out修饰参数asset @num2=@num2*@num1print @num2二.执行存储过程exec multi 5,5这时输出:25忽略了输出参数的默认值10e
2015-12-29 17:21:00 15284
转载 单例模式
单例模式就是保证在整个应用程序的生命周期中,在任何时刻,被指定的类只有一个实例,并为客户程序提供一个获取该实例的全局访问点。一.经典模式public class Singleton{ private static Singleton instance; private Singleton() { }
2015-12-29 13:32:32 378
原创 try后的finally {}里的代码会不会被执行,什么时候被执行?
先看下面一段代码 static void Main(string[] args) { Console.WriteLine(GetIt()); Console.ReadKey(); } static int GetIt() { int i = 8
2015-12-29 10:53:07 2615
原创 静态类
我们为什么要使用静态类,以及静态类的作用 在静态类中只能有静态成员,不能有实例成员 静态类不能创建对象,不能new对象。 什么时候用静态类: 1>在整个应用程序中要共享某些数据的时候可以使用静态类。 2>静态类不能创建对象,使用的时候直接通过类名来操作成员,(使用方便),所以说对于那些类中包含有大量的方法,并且类不需要创建对象的时候,可以使用静态类
2015-12-28 22:40:27 421
原创 c#访问级别约束的问题
1.方法的参数的访问修饰符必须与方法的访问修饰符兼容 class MyClass { } public class MyClass1 { //方法的参数的访问修饰符必须与方法的访问修饰符兼容。 public void M1(MyClass mc) { Console.WriteL
2015-12-28 22:07:18 368
原创 抽象类
抽象类的使用 1>使用abstract关键字标记方法 2>抽象方法在父类中不能有任何实现,所以抽象方法没有方法体。 3>抽象成员必须写在抽象类中。 4>抽象类是不能被实例化的。不能直接new一个抽象类的对象。 5>抽象类中既可以有抽象成员,也可以有实例成员。 6>抽象成员不能是私有的。
2015-12-28 21:01:29 275
原创 索引器
索引器其实也是类的一种成员,它使得对象可以像数组一样被索引,当一个类包含数组或集合成员时,索引器将大大简化对数组或集合成员的存取操作参数的个数和类型都是任意的。用reflector反编译可以看出,索引器的内部本质上就是set_item、get_item方法。看下面的实例,先定义一个图书类 class Book { private string _title
2015-12-28 20:09:09 510
转载 视图的优缺点
视图的优点与缺点在程序设计的时候必须先了解视图的优缺点,这样可以扬长避短,视图具有如下的一些优点:● 简单性。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使用户不必为以后的操作每次都指定全部的条件。● 安全性。通过视图用户只能查询和修改他们所能见到的数据。数据库中的其他数据则既看不见也取不到。数据库授权命令可以使每个用户
2015-12-28 13:15:38 867
转载 存储过程的优缺点
一.存储过程介绍存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。二.存储过程优点 1. 速度快。存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL 语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。2. 写
2015-12-28 13:04:51 436
原创 Transfer进行传值
1.先看主页面代码public partial class _Default : System.Web.UI.Page{ public string Name { get; set; } protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Cl
2015-12-27 22:34:22 701
转载 使用lock(this)需要谨慎
一. 为什么要lock,lock了什么?当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待。但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当对同一个资源进行读写的时候,我们要使该资源在同一时刻只能被一个线程操作,以确保每个操作都是有效即时的,也即保证其操作的原子性。lock是C#中最常用的同步方式,格式为lock(objectA
2015-12-27 19:17:35 5291
原创 防盗链
为什么会出现防盗链呢?,例如图片防盗链,这是因为各大网站如:腾讯、百度、网易、等基本上都采用了图片防盗链设置。为什么要这样做呢?因为你从某网站把图片直接链接贴到论坛上,当有人从这个论坛浏览该图片时,这时实际占用的是源网站的带宽资源,所以给图片设置防盗链其实是一种无可奈何的自我保护。防盗链的方法很多,一种方式是:我们可以通过请求来的表头中Referrer信息,判断其是否与请求的网址的IP与端口是
2015-12-27 16:52:16 527
原创 拓展方法
所谓的拓展方法,就是在原有的类型上面添加一个方法,就像在原有的类中添加的一样,只是现在重新定义一个静态类来进行添加现在有个数学类,里面有个加法 public class Math { public int Add(int a, int b) { return a + b; } }我们现在想要在
2015-12-27 16:25:08 421
原创 在MVC使用Log4Net
1.我们的网站发布之后还是有可能出现很多的错误,这个时候我们不可能加断点进行调试,这能根据日志里面的错误信息进行调试2.我们首先想到,用户访问网站出错后,我们将错误信息记录到日志里面去,但是多用户并发访问,多线程同时写入日志会出错,我们自然想到写入日志时,加上一把锁lock3.加上锁后,会遇到用户等待相应的情况,因此我们就想,将错误消息,先放到一个消息队列中去,这样就能够及时响应用户了,然
2015-12-26 23:29:31 761
转载 webService是什么
一、序言 大家或多或少都听过WebService(Web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传WebService技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是WebService真的是一门新兴和有前途的技术,那么WebService到底是什么?何时应该用? 当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一
2015-12-26 20:26:54 431
原创 使用iframe标签,子窗体与父窗体之间相互调用js函数
现在假设主窗体中有以下脚本 $("#editFrame")[0].contentWindow.submitForm(); //主窗体中调用子窗体中的函数 function afterEditSuccess() { $("#editDialogDiv").dialog("close");
2015-12-26 16:30:36 918
转载 Redis和Memcache的区别分析
Redis和Memcache的区别分析1. Redis中,并不是所有的数据都一直存储在内存中的,这是和Memcached相比一个最大的区别。2. Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。3. Redis支持数据的备份,即master-slave模式的数据备份。4. Redis支持数据的持久化,可以将内存中的数据保持在磁盘
2015-12-24 22:59:03 366
原创 根据tt文件模板自动生成代码
根据tt文件模板自动生成代码,下面依赖一个edmx,生成代码文件<#@ output extension=".cs"#> <#CodeGenerationTools code = new CodeGenerationTools(this);MetadataLoader loader = new MetadataLoader(this);CodeRegion region = n
2015-12-22 23:43:45 11730 1
原创 sping.net的基本用法
刚学习spring.net ,先了解俩个概念IOC:我们之前创建一个对象的时候,基本是这样 UserInfo user=new UserInfo(); 在引入IOC这个容器之后,我们就可以这样创建了 //第一步 初始化容器 IApplicationContext ctx = ContextRegistry.GetContext();
2015-12-21 19:41:31 869
原创 设置,一次请求只创建一个上下文实例对象
public static DbContext GetCurrentDbContext() { //return new DataModelContainer();每次执行都有个实例对象 // CallContext 提供与执行代码路径一起传送的属性集。此类不能被继承 //一次请求共用一个实例。 上下文都可
2015-12-20 22:16:35 1058
原创 三层,接口,简单工厂,抽象工厂
我们做项目的时候通常用以下几种架构一.依赖三层进行开发项目中有Shop.SqlServerDAL,Shop.BLL这俩个类库,Shop.SqlServerDAL有这样一个类CustomerDAL.cs类,在BLL层调用DAL层如下 SqlServerDAL.CustomerDAL dal = new SqlServerDAL.CustomerDAL(); publ
2015-12-20 18:23:09 1334
原创 EF中增删改查
一.先看增加 HKSJ_USERS user = new HKSJ_USERS(); user.LoginName = "ssss"; user.Mail = "ssss"; user.PassWord = "ssss"; user.Plane = "ssss";
2015-12-19 23:50:57 654
原创 过滤器
过滤器在我们的mvc项目中作用很多,比如自定义身份验证、自定义post表单时自动检测错误、自定义发生异常时的自动化处理、等等应用。下面我们自定义一个过滤器 // [AttributeUsage(AttributeTargets.All, AllowMultiple = true, Inherited = true)] 加上这个特性则所有加上过滤器均显示效果 public cl
2015-12-19 22:16:23 603
原创 mvc中使用伙伴类
下面介绍一种伙伴类的用法我们在做基于EF的mvc项目时,会遇到不能给EF生成的类添加特性的问题,这时候就可以用到我们的伙伴类namespace MvcDemo2.Models{ //让ClassInfos共享了ClassInfosValidate元数据信息。 [MetadataType(typeof(ClassInforValidate))] public par
2015-12-19 22:02:25 595
原创 自定义html拓展
一般情况下将拓展方法所在的命名空间跟要拓展类型的命名空间达成一致,html 拓展时我们一般用namespace System.Web.Mvc命名空间namespace System.Web.Mvc//一般情况下把扩展方法所在的命名空间跟要扩展类型的命名空间搞成一致。{ public static class MyHtmlHelper { public
2015-12-18 22:56:06 493
转载 简单工厂模式
设计模式(C#版)--简单工厂模式为什么要用设计模式? 1、设计模式是前人根据经验总结出来的,使用设计模式,就相当于是站在了前人的肩膀上。 2、设计模式使程序易读。熟悉设计模式的人应该能够很容易读懂运用设计模式编写的程序。 3、设计模式能使编写的程序具有良好的可扩展性,满足系统设计的开闭原则。比如策略模式,就是将不同的算法封装在子类中,在需要添加新的
2015-12-17 15:33:33 526
转载 单例模式
C#设计模式学习笔记-单例模式 最近在学设计模式,学到创建型模式的时候,碰到单例模式(或叫单件模式),现在整理一下笔记。 在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensure a class only has one instance,and provide a global poi
2015-12-17 14:47:08 379
原创 group by 与 partition by的区别
group by 与 partitionby的区别一、首先创建一个表CREATE TABLE [dbo].[tb_Student]([ID] [int] NOTNULL,[stuName][nvarchar](50) NOT NULL,[grade] [int] NOTNULL,[age] [int] NOTNULL,[classID] [int] NOTN
2015-12-16 22:39:53 7540
原创 用Module中的事件验证是否登陆
方法一:在Global.asax 文件中增加这样一个函数 void Application_AcquireRequestState(object sender, EventArgs e) { Uri url = Request.Url; //得到当前请求的URL //访问Admin目录,需要进行登陆验证。
2015-12-16 16:23:12 480
原创 Ajax原生代码
一、get请求 function myAjax(httpMethod,url,callback) { //发送异步请求 var xhr; if (XMLHttpRequest) { xhr = new XMLHttpRequest
2015-12-15 22:14:54 1231
原创 @htmlhelp
EditorFor 是映射到Model 属性上面,忽略用户自定义属性和样式 Model 可以为nullTextBoxFor是映射到Model 属性上面,可以用户自定义属性和样式 Model 不可以为null
2015-12-13 23:57:40 740
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人