代码改变世界

随笔分类 -  Asp.net

判断字符串是否是中文

2013-03-19 10:49 by 刘永强, 400 阅读, 收藏,
摘要: 任何字符在unicode编码中都占用两个字节。而在一般编码方式中英文字符可以用一个字节表示,中文要用两个。这样英文字符在unicode编码中多占用了一个没有用的字节,这个没用字节就用0代替。如果unicode编码中字符的第一个字节是0那他就是英文字符。不是0他就可能是除了英文字符之外的很多种语言的文字,不仅仅是中文。View Code public bool CheckChinese(string str) { bool flag = false; UnicodeEncoding a = new UnicodeEncoding(); ... 阅读全文

Request.ServerVariables获取web服务器的变量集合

2012-10-12 11:06 by 刘永强, 304 阅读, 收藏,
摘要: 本机ip:<%=request.servervariables("remote_addr")%> <br/>服务器名:<%=Request.ServerVariables("SERVER_NAME")%><br/>服务器IP:<%=Request.ServerVariables("LOCAL_ADDR")%><br/>服务器端口:<%=Request.ServerVariables("SERVER_PORT")%><br/&g 阅读全文

.net中的编码问题

2012-05-29 22:31 by 刘永强, 123 阅读, 收藏,
摘要: public static string UrlEncode(string str) { StringBuilder sb = new StringBuilder(); byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str); //默认是System.Text.Encoding.Default.GetBytes(str) for (int i = 0; i < byStr.Length; i++) { sb.Append(@"%" + Convert.ToString(byStr[i], 16)); } retur 阅读全文

观察者模式

2012-05-29 20:42 by 刘永强, 197 阅读, 收藏,
摘要: •观察者模式•观察者模式(Observer)完美的将观察者和被观察的对象分离开。举个例子,用户界面可以作为一个观察者,业务数据是被观察者,用户界面观察业务数据的变化,发现数据变化后,就显示在界面上。面向对象设计的一个原则是:系统中的每个类将重点放在某一个功能上,而不是其他方面。一个对象只做一件事情,并且将他做好。观察者模式在模块之间划定了清晰的界限,提高了应用程序的可维护性和重用性。观察者模式有很多实现方式,从根本上说,该模式必须包含两个角色:观察者和被观察对象。在刚才的例子中,业务数据是被观察对象,用户界面是观察者。观察者和被观察者之间存在“观察”的逻辑关联,当被观察者发生改变的时候,观察者 阅读全文

工厂模式

2012-05-29 20:41 by 刘永强, 228 阅读, 收藏,
摘要: •简单工厂•简单工厂模式又叫静态工厂模式,顾名思义,它是用来实例化目标类的静态类。(实例见备注)•工厂方法(实例见备注)简单工厂:比方说各个省份的俱乐部要不同的运动员(篮球,足球,乒乓球运动员),就可以根据一个简单工厂(运动员协会)产生相应的运动员:我们可以设计一个“运动员”接口,“足球运动员”和“篮球运动员”都实现“运动员”这个接口。而“运动员协会”就是一个简单工厂类,它负责实例化“运动员”。运动员接口public interface IAthlete { void Run(); void Jump(); }足球运动员:public class Footballer:IAthlete { p 阅读全文

单例模式

2012-05-29 20:39 by 刘永强, 125 阅读, 收藏,
摘要: 经典模式:简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类的实例都只存在一个(当然也可以不存在)1)首先,该Singleton的构造函数必须是私有的,以保证客户程序不会通过new()操作产生一个实例,达到实现单例的目的; 2)因为静态变量的生命周期跟整个应用程序的生命周期是一样的,所以可以定义一个私有的静态全局变量instance来保存该类的唯一实例; 3)必须提供一个全局函数访问获得该实例,并且在该函数提供控制实例数量的功能,即通过if语句判断instance是否已被实例化,如果没有则可以同new()创建一个实例;否则,直接向客户返回一个实.. 阅读全文

服务器控件使用技巧

2012-05-29 20:35 by 刘永强, 1087 阅读, 收藏,
摘要: RequiredFieldValidator:非空验证控件用于:必填项使用方法:1)拖一个控件2)设置ControlToValidate属性 (要验证的控件)3)设置验证控件验证不通过要给用户显示的信息. 一般设置Text属性,当Text属性为空时,显示的内容会自动取ErrorMessage的值这个控件所独有的一个属性:InitialValue:设置初始值验证控件的一般属性:Display: none 不显示 static:不显示也占位 dynamic:不显示不占位 通过 display:none样式实现SetFocusOnError:当该验证控件不没有通过验证时,自己获得焦点.Page.Is 阅读全文

缓存深入

2011-09-13 19:55 by 刘永强, 184 阅读, 收藏,
摘要: 缓存(Cache) 一:缓存简介:如果每次进入页面的时候都查询数据库生成页面内容的话,如果访问量非常大,那么网站的性能会非常差,而如果只有第一次访问的时候才查询数据库生成页面内容,以后都直接输出内容,则能提高系统性能,这样无论有多少人访问都只访问一次数据库,数据库压力不变。缓存是一种利用空间换取时间的技术,存在于计算机中的很多地方,用来将一些慢速设备中常用数据库保存在快速设备中,取数据的时候直接从快速设备中取,比如cup二级缓存,内存,window文件读取缓存。缓存存在失效的问题:为了保证从缓存中读取数据和慢速数据(数据库)中数据一致,则需要在慢速数据(数据库)中对应的数据发生变化的时候,清. 阅读全文

文件上传 下载 一般处理程序和webForm联系以及asp.net内置对象

2011-08-29 22:26 by 刘永强, 1638 阅读, 收藏,
摘要: 1.HttpHandler实现图片上传(1).表单元素使用 文件选择框<input type="file"/> 控件。(2).表单设置enctype="multipart/form-data",本质上就是设置浏览器提交表单的数据时,使用随机分隔符来分割不同控件的数据,而且数据的组织形式由 name=value换成了数据头和数据体的方式。(3).服务器接收客户端上传的文件使用Request.Files属性,使用HttpPostedFile的SaveAs方法将图片保存在服务器2.HttpHandler实现文件下载Response.AddHeade 阅读全文

委托 文件流 套接字 服务器与浏览器工作原理

2011-08-25 23:42 by 刘永强, 287 阅读, 收藏,
摘要: 编辑器加载中...1.委托:类型安全的函数指针 通俗的意思就是一个能存放某种方法签名的方法的清单 委托的好处:系统定义好委托,但是不知道具体要执行什么代码,所以将委托暴露给开发人员。由开发人员按照委托的方法签名格式,定义方法,并添加到委托上。 2.回调方法:自己定义,系统调用。 3.FileStream: FileStream对象表示在磁盘或者网络路径上指向文件的流,对输入输出进行缓冲,从而提高性能,就是对文件采取分段读取,即每次只读取一部分到内存。 4.字符串和字节数组转换 字符串和字节数组转换:Encoding.UTF8.GetString(byte[]) 字符串转换成字节数组:Encod 阅读全文

MD5 Excel操作 邮件发送 拼音检索

2011-08-15 21:15 by 刘永强, 483 阅读, 收藏,
摘要: 1判断是否包含列 DataRow dr; dr.Table.Columns.Contains(列名) 2判断该列是否为NULL: DBNull.Value != dr[列名] 3.MD5算法: MD5算法是一种散列(hash)算法(摘要算法,指纹算法),不是一种压缩算法,[不是一种加密算法].任何长度的任意内容都可以用MD5加密计算出散列值,我们可以用CalcMD5进行计算,MD5长度一半是32位的十六进制数字符串(比如71f396e4134a1160d90bb1439876df31),MD5值得个数是有限的,但是元数据是无限的,因此存在着不同的内容产生相同MD5的概率,但是不同内容产生相同M 阅读全文