![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【.NET】
mark4ever
这个作者很懒,什么都没留下…
展开
-
ASP.net编码要注意的一些地方
<br />新技术应该有新技术的做法, 进入ASP.NET的世界, 就应该把以往的习惯改正, 全新的进入新的世界. <br /> 以下列举的都是错误的做法, 请不要误以为是推荐的做法而进行推广:<br />1. 使用server side include给ASPX引入共同的页面构图.<br />在ASP.NET的机制下, 应使用ASCX(web user control)来实现. ASCX提供了更多可控制接口. 并且更重要的是, ASCX是一个类. 一个实实在在的类. 可以全面控制它.<br />2.不使原创 2010-11-08 18:50:00 · 649 阅读 · 0 评论 -
生成图片形式的数字字母组合验证码
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Drawing; //因为用到GDI+绘图,所以引入对应命名空间;public partial class _Default : System.Web.UI.Page{ protected void Page_原创 2011-04-05 16:43:00 · 2391 阅读 · 0 评论 -
浅谈三层架构
三层架构并不是MVC,MVC是一个很早就有的经典的程序设计模式,M-V-C分为三层,M(Model)-V(View)-C(Control)。而web开发中的三层架构是指:数据访问层(DAL-DatabaseAccessLayer),业务逻辑层(BLL-BusinessLoginLayer),以及用户界面层(UI-UserInterface,实际就是网页后台的具体调用BLL层)。这个是基本概念。曾经我以为三层架构就是在AppCode中,分为三个大类与若干小类,各司其职。在经过一番洗礼后,才发觉多么的无知。首先原创 2011-04-05 02:24:00 · 2303 阅读 · 1 评论 -
在网站加入QQ在线状态,实现客服功能。
<br />以前看见有些网站上乱七八糟的总有什么QQ在线客服为您服务,总觉得神秘。这么乱七八糟的网站都能做出这么高级的东西?了解了以后,才发现完全没有一点技术含量。<br />这就是QQ在线状态生成。<br />http://wp.qq.com/login.html<br />生成自己的状态,然后嵌入到页面就可以了。<br />还可以修改一下,绑定多个客服。。。<br />so easy。。。。原创 2011-04-08 23:32:00 · 1365 阅读 · 0 评论 -
在网页中引入PDF
<br />要在网页中打开PDF文件输出:<br />protect void Page_Load(object sender, EventArgs e){ Response.ContentType = "Application/pdf" ; string FilePath = Server.MapPath("pdfName") ; Response.WriteFile(FilePath); Response.End();} <br /> <br /> <br原创 2011-04-08 23:41:00 · 694 阅读 · 0 评论 -
C#接口
C#中延续了面向对象的三大特点:继承、封装、多态性。多态性是指类为名称相同的方法提供不同的实现方式的能力(依靠参数的不同)。里用多态性,就可以调用类中的某个方法而无需考虑该方法是如何实现的。实现太多的方式:1.通过抽象类实现多态性。抽象类(abstract)本身不能被实例化,只能在扩充类中通过继承使用。抽象类的部分或全部成员不一定都要实现,但是在继承类中要全部实现。抽象类中已实现的成员仍可以重写。2.通过继承实现多态性。多个类从单个基类继承。3.通过接口实现太多性。多个类可实现相同的接口,而单个类可实现一个原创 2011-04-09 16:37:00 · 470 阅读 · 0 评论 -
C#委托
<br />委托可以看做一种数据类型,可以用于定义变量。但他是一种特殊的数据类型,他所定义的变量能接受的数值只能是一个函数(方法),更确切的说,委托类型的变量可以接受一个函数地址,很类似于C/C++的函数指针。<br /> class MathOpt //先定义一个类 { public int Add(int x, int y) //类中的方法。 { return x + y; } }原创 2011-04-10 02:53:00 · 452 阅读 · 0 评论 -
C#中的值类型和引用类型
前几天看了一篇文章,讲的是多数程序员已经不注重基本功了,只要求能实现目的就好。便引出一到问题,C#中哪些是值类型,哪些是引用类型,自己一看这个题,只能反映上来基本的值类型,对于委托和接口还有Object这些,确实还是摸不着头脑,便翻书查阅了一下。C#的数据类型分为两类:值类型和引用类型,除了这两种类型以外,在非安全代码里还可以使用指针类型,但必须显示标明这段代码是不安全的。值类型直接存放真正的数据,每个值类型都有自己固定的长度,比如int类型占用4个字节。值类型的变量保存在堆栈(stack)中,因此对一个变原创 2011-04-09 01:03:00 · 684 阅读 · 0 评论 -
Socket之路一
学校开始学习Socket编程,虽然自己搞的是ASP.NET,但是对Socket也有很大的兴趣,一直不知道如何入门,刚好借此机会跟着学习。Socket的概念就不多写了,Windows环境下的Socket编程是WinSock,现在基本上是2.0,以前还有1.1版,但我想3.0是不会出来了。WinSock继承了伯克利开发的BSD Unix Socket的规范,所以过程都是一样的。WinSock编程一般都“异步非阻塞模式”,现在还未学习到这里,我也不知道如何调用,以后再继续讨论。关于同步、异步、阻塞、非阻塞。同步:原创 2011-04-10 22:17:00 · 735 阅读 · 0 评论 -
生成静态页面
<br />动态页面每次都要经过服务器的处理才会返回,而静态页面会直接提交给用户,当生成一些内容常年不变,如新闻,小说的页面时,选择将发布的内容生成静态页面是很好的选择,这样会降低服务器的负担。<br />生成静态页面有两种思路。<br />1:模板替换法。<br />2:直接生成法。<br />关于模板替换法,就是事先写好静态页面模板(.html)。在生成时,替换其中的预定义块。比如:<br /><html><br /><head></head><br /><body><br /><p>{@newsTit原创 2011-04-10 23:52:00 · 626 阅读 · 0 评论 -
向Updatepanle中动态注册Javascript事件
<br />Updatepanle中不可用ClientScriptManager的方法去注册Javascript事件,但是可以用ScriptManager的方法去注册。<br />ScriptManager.RegisterClientScriptBlock(UpdatepanelName, typeof(UpdatePanel), "string", "JavaScriptString", true);原创 2011-04-14 22:55:00 · 444 阅读 · 0 评论 -
ASP.NET前台代码绑定后台变量方法总结
经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题。一般有和两种方式,这里简单总结一下。如有错误或异议之处,敬请各位指教。一方面,这里所讲的前台即通常的.aspx文件,后台指的是与aspx相关联的CodeBehind,文件后缀名为.aspx.cs;另一方面,这里的绑定是指用户发出访问某一页面指令后,服务器端在执行过程中就已经将前台代码进行了赋值,而后生成html格式回传客户端显示转载 2011-06-12 19:32:00 · 752 阅读 · 0 评论 -
基于Fileupload控件的FTP上传
类库: string filename = chdFtp.UniqueName(FileUpload1.FileName); chdFtp one = new chdFtp(filename, FileUpload1.PostedFile.InputStream); //Fileupload的文件PostedFile的返回流InputStream bool ftpUpdateFlag = one.UploadVideo(); 调用页面:先放一个File原创 2011-04-30 13:18:00 · 4068 阅读 · 0 评论 -
C#事件
<br />事件的定义方式为:<br />[访问修饰符] event 委托类型 事件变量如: public delegate void DelegateCar(); //先定义委托public event DelegateCar EventCar; //再定义基于委托的事件 <br />事件的使用经过三个步骤:1.定义事件。2.订阅事件。3.激发事件。<br />事件要想使用,必须先定义,然后要有一个订阅者去订阅该事件,该事件才会被响应。最后显式的激发该事件。<br />看了一个很直原创 2011-05-03 09:52:00 · 727 阅读 · 0 评论 -
iframe中页面如果有验证导致重复出现页面的问题
在页面验证的时候都是使用Session,主界面的布局是菜单分栏式布局,左边是菜单,右边是一个iframe框架。iframe框架里面显示各个子页面。通常情况下,当我Session失效的时候。页面就会自动返回登录界面。但当我使用iframe后,iframe里面的子页面就会返回登录界面,而主界面不会返回。这样就造成再次登陆后,页面有两个主界面。解决办法:在子页面Session失效时,调用Javascript:top指代的是祖先页面,parent指代的是父页面。location属性还有一个reload()方法,lo原创 2011-05-08 09:54:00 · 3199 阅读 · 0 评论 -
JWPlyaer配置
当需要在网站上播放音频或者视频的时候,就用开源的Jwplayer。(FLV, MP4, MP3, AAC, JPG, PNG and GIF)下载地址 最新jwplayer 5.5下载解压后,主要用到的文件有2个,jwplayer.js和player.swf。另外一个swfob原创 2011-03-27 22:46:00 · 3826 阅读 · 0 评论 -
IIS限制ASP.Net 文件上传大小解决方案,修改IIS7/7.5配置
当在web.config中设置了 httpruntime 后还是无法成功上传大文件,则要修改IIS的系统configIIS 7 默认文件上传大小是30M要突破这个限制: 修改IIS的applicationhost.config 打开 c:/windo原创 2011-08-26 19:46:58 · 2651 阅读 · 1 评论 -
浅谈向页面注册Javascript的方法
在以前的编程中,经常喜欢用Response.Write()这样的方法去向页面注册Javascript事件,又见过ClientScriptManager.RegisterStartupScript()的方法去向页面注册Javascript事件。一直不知道区别在何处。今天无意看了一下生成后的HTML源代码,原来Response.Write方法是直接想页面发送这段文字,在DOM树还没有形成的时候。也就是:显然这不符合规范,所以应当用ClientScriptManager.RegisterStartupScript原创 2011-04-04 03:49:00 · 768 阅读 · 0 评论 -
统一管理页面的验证——由自定义继承Page基类想到的。
<br />今天在看书的时候,发现一个启示,平时在验证登陆的时候,总是在每个页面都写上Session判断。当页面多了,有改动的时候,就十分麻烦,这时候可以使我们需要验证的页面统一继承一个验证类。由于这个验证每次是在Page_Load事件中进行的。那么这个验证类就应该继承于Page基类。<br />这个是基本的验证类:<br /> <br />using System.Web;using System.Web.UI;using System.Security;using System.Web.UI原创 2011-04-04 02:28:00 · 2026 阅读 · 0 评论 -
【数据绑定】如何在数据绑定表达式中应用自定义函数
<br /><br />数据绑定的形式为<%# 数据绑定表达式 %>,其中数据绑定表达式常用的有两种形式:一个是直接绑定数据字段(如<%# Eval("sex") %>),另一个是间接绑定数据字段(如<%# GetSex(Eval("sex")) %>)。<br />index.aspx<br /><br /> value='<%# GetSex(Eval("sex")) %>' <br /> <br />index.aspx.cs<br /> <br /> public string GetSe原创 2011-03-19 00:50:00 · 984 阅读 · 0 评论 -
MSDN,安装程序检测到的HTML帮助数据文件已损坏,无法继续。单击确定以关闭安装程序
<br /><br />1).Help 9 的 Documentation Explorer 2008 破损了,到“控制面板”中去修复一下 Documentation Explorer 2008 即可。<br />(无效的时候试第二个)<br /> <br /><br />2).nslist.hxl 损坏导致 MSDN for Visual Studio 2008 安装失败的解决方案。<br />在 NSList.hxl 文件已损坏时会出现此错误。 NSList.hxl 文件是使用许多 Microsoft原创 2010-11-08 18:48:00 · 5454 阅读 · 4 评论 -
GridView 自定义分页
<br />//前台GridView1控件定义<br />OnPageIndexChanging="GridView1_PageChanging",OnRowCreated="GridView1_RowCreated",AllowPaging="true", PageSize="10"<br />//后台代码<br /> protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)<br /> {<原创 2010-11-08 18:49:00 · 465 阅读 · 0 评论 -
ASP.Net中MD5和SHA1加密的几种方法
<br /><br />首先简单介绍一下MD5和SHA1:<br /><br />MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是m原创 2010-11-08 18:50:00 · 354 阅读 · 0 评论 -
SQL注入与JS攻击防范
<br /><br />/// <summary><br />/// 过滤标记<br />/// </summary><br />/// <param name="NoHTML">包括HTML,脚本,数据库关键字,特殊字符的源码 </param><br />/// <returns>已经去除标记后的文字</returns><br />public static string NoHTML(string Htmlstring)<br />{<br />if (Htmlstring == null)<br />原创 2010-11-16 21:57:00 · 2751 阅读 · 0 评论 -
i++,++i的困扰
main(){ int i=5,j=5,p,q; p=(i++)+(i++)+(i++); q=(++j)+(++j)+(++j); printf("%d,%d,%d,%d",p,q,i,j);} 这个程序中,对P=(i++)+(i++)+(i++)应理解为三个i相加,故P值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。原创 2010-11-16 22:08:00 · 624 阅读 · 0 评论 -
C#占位符和格式化字符串
static void Main() { string c=Console.ReadLine(); string d=Console.ReadLine(); Console.WriteLine(c+","+d); //用“+”连接符 }那么你说这样写很容易写错,很麻烦,C#还提供另一种书写方式,就是占位符,用{ }来表示,在{ }内填写所占的位的序号,C#规定从原创 2010-11-17 13:35:00 · 34900 阅读 · 3 评论 -
LINQ to XML
<br />LINQ最大的好处是LINQ to XML,我觉得。<br />先引入System.Xml.Linq命名空间,其中常用的属性就是XElement。<br />LINQ基于DOM方式来操作XML,意思就是将XML文件在内存中构造成DOM树,然后来进行操作,将XML加载到内存两种方法。<br />1:将XML文件加载到内存。 XElement xml1 = XElement.Load(Server.MapPath("book.xml"));<br />2:构造XML树。<br />XElemen原创 2011-02-24 16:45:00 · 496 阅读 · 0 评论 -
C#常用数据类型汇总
<br />类型占用字节数(bytes)可存储范围<br />bool根据执行环境而异true或false<br />byte1 byte0~255之间的整数<br />char2 byte单一字符<br />decimal16 bytes<br />double8 bytes<br />float4 bytes<br />int4 bytes<br />short2 bytes<br />long8 bytes<br />string根据字符串长度而异最多20亿的Unicode字符<br />object原创 2011-01-28 19:12:00 · 990 阅读 · 0 评论 -
关于(object sender, EventArgs e)
在日常开发中,大多数控件都需要写触发函数,而触发函数中的两个参数 sender 和 e 的作用,就不容小视。看下面的例子:在上面的程序中设计了三个Button控件,他们点击后触发的函数都为Button_OnClick;那么我如何分辨出到底是哪一个Button进行了点击呢,就要用到触发函数中的参数来判断。 protected void Button_OnClick(objec原创 2011-01-29 18:17:00 · 14349 阅读 · 3 评论 -
WebService小讲
支撑Web Service两个最重要的技术,便是XML及HTTP,这也就是SOAP协定的由来:SOAP=XML+HTTP。SOAP全称为:Simple Object Access Protocol——即简易对象访问协议,他让开发人员可以在现有的网络平台上访问不同的计算机对象。因为HTTP与XML都是跨平台的,所以SOAP也延续这样的标准。交换数据所使用的协议为HTTP;交换数据的格式为XML。ASP.NET提供了相关的工具及底层机制,协助开发人员快速简便地建立Web Service。1.如何建立Web Se原创 2011-02-09 10:47:00 · 556 阅读 · 0 评论 -
HyperLink控件动态绑定超链接
今天用HyperLink控件想动态绑定超链接 NavigateUrl="News.aspx?id=" Text='点击后就是无法解析出来绑定的字段,郁闷。并且NavigateUrl应该用'后来才知道这样绑定无法解析。你可以修改如下:方法一:方法二:原创 2011-02-27 02:47:00 · 5800 阅读 · 0 评论 -
FileUpload控件中防止上传文件重名
if (fp.HasFile) { savePath = Server.MapPath("~/FileUpload/"); if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } textname = fp.FileNam原创 2011-03-07 00:53:00 · 3765 阅读 · 0 评论 -
ASP.NET 页面的生命周期
ASP.NET页面编程模式不同于传统Winform,用户请求页面后,经历的过程如下。1.用户HTTP GET方式请求服务器该页面,服务器执行初步处理。 (HTTP请求连接)2.服务器动态加载页面控件,处理后。返回静态网页给客户端(浏览器)。 (这时,HTTP连接断开)3.用户输入信息或进行菜单选项,单击按钮。4.页面回发给web服务器(HTTP POST方法),回发目标若无指定的话就是该页本身。 (HTTP连接)5.web服务器再次运行该页面,并使用用户的输入信息。6.页面执行通过编程原创 2011-02-19 18:19:00 · 967 阅读 · 0 评论 -
禁止ASP.NET文本框控件一些事件的方法
<br /><asp:TextBox ID="TextBox1" onpaste="return false;" runat="server"></asp:TextBox><br /><br />onpaste="return false" 禁用粘贴<br />oncopy="return false" 禁用复制<br />oncut="return false" 禁用剪切<br />context="noContext" 禁用右键菜单原创 2011-03-06 23:31:00 · 630 阅读 · 0 评论 -
System.Transaction处理数据库事务时 MSDTC不可用的解决办法。
<br />要使用System.Transaction类进行数据库事务操作时,必须得开启MSDTC。MSDTC(分布式交易协调器),协调跨多个数据库、消息队列、文件系统等资源管理器的事务。该服务的进程名为Msdtc.exe,该进程调用系统Microsoft Personal Web Server和Microsoft SQL Server。该服务用于管理多个服务器 .<br />位置:控制面板--管理工具--服务--Distributed Transaction Coordinator<br />依存关系:R原创 2011-02-21 20:08:00 · 1386 阅读 · 0 评论 -
获取服务器和客户端的各种变量。
<br />ASP.NET中的Request对象的作用。<br /> <br />ServerVariable(环境变量)包含了客户端和服务器端的各种系统信息,可以用一下方法获得。Request.ServerVariable["变量"]。<br /><br />变量解释<br />HTTP_USER_AGENT获得用户的浏览器类型和版本<br />REMOTE_ADDR获得用户IP<br />REQUEST_METHOD获取请求方法<br />LOCAL_ADDR获取服务器IP<br />SERVER_NA原创 2011-02-22 11:29:00 · 1161 阅读 · 0 评论 -
SQLServer中获得刚插入数据中主键值的方法
PHP中有相关函数,.NET中以前都是再查询MAX(ID),SQLServer2005以后,可以输入SQL语句" INSERT INYO Table_Name OUTPUT inserted.ID VALUES ('a','b')",然后用ExecuteScalar()方法执行(返回第一行第一列的Object类型)。就可以获得刚插入行的主键,这里OUTPUT指出需要有一个返回值,inserted.原创 2011-12-17 02:59:58 · 3657 阅读 · 0 评论