代码改变世界

随笔分类 -  Asp.net

.NET中的Action及Func泛型委托

2014-01-09 11:47 by 假面Wilson, 403 阅读, 收藏,
摘要: 委托,在C#编程中占有极其重要的地位,委托可以将函数封装到委托对象中,并且多个委托可以合并为一个委托,委托对象则可以像普通对象一样被存储、传递,之后在任何时刻进行调用,因此,C#中函数回调机制的实现基本上依赖于委托。C#的delegate关键字用于声明委托,它具有将声明委托类型映射到System.Delegate类的能力,System.Delegate类位于mscorlib.dll中,是.NET的基础核心类之一。使用delegate关键字声明一个委托,实质上创建了System.Delegate的派生类,因此委托类型并非结构体也不是其它类型,它是一个类。一个委托对象也就是一个类的实例。以下是De 阅读全文

ThreadStart中如何带参数

2013-10-24 14:56 by 假面Wilson, 20869 阅读, 收藏,
摘要: 1.ThreadStart线程执行带参数的方法,new Thread(new ThreadStart(delegate { ThreadTask(firstPage, lastPage); }));2.System.Threading.ParameterizedThreadStart其实没有必要,ThreadStart本来就是个委托,里面又来了个匿名方法。多了一次方法的调用,虽然性能不会影响什么,但看着很别扭。c#有一个委托System.Threading.ParameterizedThreadStart,就是来做这事的,从名字上也可又看出来是带参数的.下面是原型:// 表示在 System. 阅读全文

DataTable中抽取Distinct数据

2013-03-29 11:26 by 假面Wilson, 285 阅读, 收藏,
摘要: 最近需要从DataTable中抽取Distinct数据,发现DataView可以帮我们直接获取Distinct数据。DataTable dataTable;DataView dataView = dataTable.DefaultView;DataTable dataTableDistinct = dataView.ToTable(true,"FieldName1","FieldName2","...");//注:其中ToTable()的第一个参数为是否DISTINCT 阅读全文

DataGridViewComboBoxCell 的Value 、FormatValue、EditedFormattedValue

2012-11-22 13:24 by 假面Wilson, 774 阅读, 收藏,
摘要: Value=ValueMemberFormatValue =DisplayMember (获取为显示进行格式化的单元格的值)EditedFormattedValue=DisplayMember(获取该单元格的当前格式化值,而不考虑该单元格是否处于编辑模式,也不论是否尚未提交此值) 阅读全文

上传图片时,CMKY转RGB

2012-11-16 13:33 by 假面Wilson, 428 阅读, 收藏,
摘要: 在做项目时发现图片CMYK模式无法显示,下面使用将Image重新绘制为Format24bppRgb的方式来解决此问题:usingSystem.Drawing;usingSystem.Drawing.Drawing2D;usingSystem.Drawing.Imaging;protectedvoidButton1_Click(objectsender,EventArgse){if(FileUpload1.HasFile){SavePostedImage(FileUpload1.PostedFile,FileUpload1.FileName,1000,1000);}}publicvoidSave 阅读全文

CSS表格数据换行

2012-11-07 11:09 by 假面Wilson, 551 阅读, 收藏,
摘要: 近期做的一个项目,该项目需要输出的数据很多,在表格中需要生成各种类型的数据,遇到了一个让人头疼的问题:长英文字符串的换行。找了不少资料,最终使用了word-wrap、table-layout各自的一个属性值,并结合项目实际的情况,做了一些兼容性处理,解决该问题,并在团队中做了一次分享,希望可以给大家带来帮助,提升对css长英文或者长字段换行的认识。长英文或者长字段换行写法总结如下:需要了解的3个属性1.word-wrap:break-word 词内换行 只支持连续的英文和数字,在表格中失效2.word-break:break-all 边界内换行 支持包括英文和数字的词句短,在火狐中失效3.ta 阅读全文

DataGridView 的 CurrentCellDirtyStateChanged事件用法

2012-10-31 18:06 by 假面Wilson, 2236 阅读, 收藏,
摘要: 做DataGridView开发时发现了CurrentCellDirtyStateChanged事件的用处查询了MSDN描述如下:当单元格的内容已更改,但更改尚未保存时,该单元格将标记为已修改。此事件通常会在以下情况下发生:当单元格已编辑,但是更改尚未提交到数据缓存中时,或者当编辑操作被取消时。在CurrentCellDirtyStateChanged事件处理程序调用CommitEdit方法以引发CellValueChanged事件。可以解决DataGridView无法及时响应Combobox值改变。 阅读全文

ASP.NET上传文件的三种基本方法

2012-09-25 13:05 by 假面Wilson, 283 阅读, 收藏,
摘要: ASP.NET上传文件的三种基本方法ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法。方法一:用Web控件FileUpload,上传到网站根目录。1 <form id="form1" runat="server">2 <asp:FileUpload ID="FileUpload1" runat="server" />3 <asp:Button ID="Button1" runat="serv 阅读全文

简说Session

2012-09-24 13:08 by 假面Wilson, 204 阅读, 收藏,
摘要: 说Session大家都知道也都用过(做asp.net我遇到过没用过Cookies的,还没遇到过没用过Session的),Session的保存方式默认是在内存中,更确切的说是在asp.net的进程中,这种方式是默认的保存方式即InProc方式,在web.config里面可以进行配置。这种方式由于和应用程序在同一进程中,所以有时会发生丢失的情况。有没有解决办法呢?答案是有的。 一般常用的Session保存方式还有StateServer和SQLServer,StateServer是一个单独的进行,较之InProc要稳定的多。而SQLServer则是可以持久的保存Session。 还有一个平时大家都说 阅读全文

MemberwiseClone C#克隆

2012-07-19 15:44 by 假面Wilson, 368 阅读, 收藏,
摘要: MemberwiseClone方法创建一个浅表副本,方法是创建一个新对象,然后将当前对象的非静态字段复制到该新对象。如果字段是值类型的,则对该字段执行逐位复制。如果字段是引用类型,则复制引用单不复制引用的对象;因此院士对象及其副本引用同一对象。 例如,考虑引用对象A和B的被称为X的对象。对象B依次引用对象C。X的浅表副本创建一个新对象X2,该对象也引用对象A和B。相比而言,X的深层副本创建一个新对象X2,该对象引用新对象A2和B2(人别为A和B的副本)。B2有引用新对象C2,C2是C的副本。该实例阐释了千层和深层复制操作之间的区别。 有很多方法可以实现深层复制操作,前提是浅表赋值操作有... 阅读全文

C# 文件保存到数据库中或者从数据库中读取文件

2012-07-06 10:51 by 假面Wilson, 1459 阅读, 收藏,
摘要: 首先,介绍一下保存文件到数据库中。 将文件保存到数据库中,实际上是将文件转换成二进制流后,将二进制流保存到数据库相应的字段中。在SQL Server中该字段的数据类型是Image,在Access中该字段的数据类型是OLE对象。 [复制此代码]CODE: //保存文件到SQL Server数据库中 FileInfo fi=new FileInfo(fileName); FileStream fs=fi.OpenRead(); byte[] bytes=new byte[fs.Length]; fs.Read(bytes,0,Convert.ToInt32(fs.Length)); Sql... 阅读全文

如何保证Web Service的安全

2012-05-31 16:42 by 假面Wilson, 1981 阅读, 收藏,
摘要: 转载自:http://www.cnblogs.com/jiapengliang2005/articles/1619233.html 要以安全的方式访问Web服务方法,可以考虑以下安全措施:l 是谁调用?——SoapHeader身份认证。l 来自哪里?——访问IP认证。l 加密传输 ——SSL安全访问。这些安全保护措施常常是配合使用的。7.9.1 通过SoapHeader来增强Web Service的安全性通过SoapHeader我们可以让具有指定用户口令的用户来访问我们的Web服务接口。(完整代码示例位置:光盘\code\ch07\WebAppClient\WebForm-SoapHeader 阅读全文

Asp.net MVC3 一语道破

2012-05-30 19:01 by 假面Wilson, 386 阅读, 收藏,
摘要: 原文:http://www.cnblogs.com/know/archive/2012/03/31/2426730.htmlAsp.net MVC前两年就听说了,但一直没有去用,中间只是粗略的了解了下,在做的栏目改版时才真正的去学习和使用——刚开始学,对其'路由'和请求解析执行的过程感觉比较神秘,但随着项目中的应用、功能的逐一实现,发现所谓的Asp.net MVC也就那样,清楚了核心的几点东西,就可以比较'得心应手'的玩转了。这篇博客就是要跟大家分享下:我所了解的Asp.net MVC和如何灵活使用! 本文目录:什么是ASP.NET MVCAsp.net MVC 阅读全文

常用Lambda范例

2012-05-30 14:34 by 假面Wilson, 222 阅读, 收藏,
摘要: 原文:http://www.cnblogs.com/wlb/archive/2009/08/26/1554026.html1.用Where()方法进行筛选using System;using System.Linq;namespace ConsoleApplication3{ class Program { static void Main(string[] args) { int[] intary = { 1, 2, 3, 4, 5, 6, 7, 8, 89, 10 }; //查询所有能被2整除的元素 var query1 = intary.Where(num => num % 2 = 阅读全文

Lambda表达式

2012-05-30 14:33 by 假面Wilson, 265 阅读, 收藏,
摘要: Lambda表达式实际上是一个匿名函数。它包含表达式和语句,常用于创建委托或表达式目录树类型。所有Lambda表达式都是用Lambda运算符---------- =>,该运算符读为“goesto”。Lambda运算符的左边是输入参数(可能没有),右边是表达式或语句块。Lambda表达式返回右边表达式的结果。其基本格式如下:(input paramenters)=>expression其中,parameters是一个参数列表,在Lambda只有一个输入参数时可以不适用括号,否则括号是必须的。两个或更多输入参数由括在括号中的逗号分隔,如以下代码所示,包括两个参数x和y。(x,y)=&g 阅读全文

1、1、2、3、5、8、13、21、34...... 求第X位数是多少,2种实现方式

2012-05-04 11:36 by 假面Wilson, 272 阅读, 收藏,
摘要: 经典的面试题,之前面试时写的不够好,回来后重新想了下,以下是2实现方式:方法一:【递归调用】 public int FooNum(int i) { if (i < 0) return 0; else if (i > 0 && i <= 2) return 1; else returnFooNum(i - 1) +FooNum(i - 2); } 方法二:【for循环】 public int AddNum(int x) { int f1 = 1; int f2 = 1; int f3 = 0... 阅读全文

【转载】说说JSON和JSONP,

2012-04-28 16:29 by 假面Wilson, 247 阅读, 收藏,
摘要: 转载自:http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html非常好的文章,Mark方便以后查阅。前言:由于Sencha Touch 2这种开发模式的特性,基本决定了它原生的数据交互行为几乎只能通过AJAX来实现。当然了,通过调用强大的PhoneGap插件然后打包,你可以实现100%的Socket通讯和本地数据库功能,又或者通过HTML5的WebSocket也可以实现与服务器的通讯和服务端推功能,但这两种方式都有其局限性,前者需要PhoneGap支持,后者要求用户设备必须支持WebSocket,因此都 阅读全文

在asp.net中使用 log4net

2012-04-26 12:24 by 假面Wilson, 258 阅读, 收藏,
摘要: log4net(Log For Net)是Apache开源的应用于.Net框架的日志记录工具,详细信息参见Apache网站.它是针对Java的log4j(Log For Java的)姊妹工具.用过log4j的都知道,它功能强大,可配置性灵活,线程安全,对日志的输出管理和级别管理方便。具体的使用方法往下看。 首先你应该下载log4net.dll并引入到你的项目References中,或者把源代码项目作为你工程的一部分加入到你的工程当中。单击这里下载Log4net 。 使用log4net需要知道其中两个比较重要的概念:logger 和 appender。前者是日志记录对象,后者是日志记录的目标,包 阅读全文

Parse与TryParse的区别

2012-04-25 15:42 by 假面Wilson, 557 阅读, 收藏,
摘要: Convert.ToInt32、int.Parse(Int32.Parse)、int.TryParse、(int) 四者都可以解释为将类型转换为 int,那它们的区别是什么呢? Convert.ToInt32 与 int.Parse 较为类似,实际上 Convert.ToInt32内部调用了 int.Parse: Convert.ToInt32 参数为 null 时,返回 0; int.Parse 参数为 null 时,抛出异常。 Convert.ToInt32 参数为"" 时,抛出异常; int.Parse 参数为"" 时,抛出异常。 Convert. 阅读全文

.net 构造器

2012-03-11 00:42 by 假面Wilson, 740 阅读, 收藏,
摘要: 构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:Platypus p1 = new Platypus(); 构造器可以用来在初始化对象时初始化数据成员,一个类可以有多个构造器。一个类的构造器的名称必须与该类的名称一致。要退出构造,可以使用返回语句“return;”。相反,方法的作用是为了执行java代码。 构造器和方法在下面三个方面的区别:修饰符,返回值,命名。和方法一样,构造器可以有任何访问的修饰: public, protected, private或者没有修饰(通常被package 和 friendly调用). 不同于方法的是,构造器不能有以下非访问性质的修饰:.. 阅读全文