- 博客(286)
- 资源 (1)
- 收藏
- 关注
原创 连接模式与离线模式
原则:1、DataReader对象提供连接模式,数据处理过程之中,程序一直与数据库相连接2、DataTable,DataAdapter对象提供离线操作,最后相互统一提交至数据库中
2012-11-07 14:47:52 2780
原创 事务操作
1、Connection对象的,BeginTransaction(),Sqlcommand对象的Transaction属性关联,而后执行command,trans.Rollback()或者trans.Commit();2、使用TransactionScope对象,类似mutex对象的用法,系统后台维护3、需手工控制commit或者rollback时,除1之外,还可以使用Committabl
2012-11-07 14:34:03 1993
原创 顺序问题,母版页和内容页
原则:由于在母版页的Page_Load事件引发之前,内容页Page_Load事件已经引发,所以,此时从内容页中访问母版页中的控件比较困难。所以,本示例使用ASP.NET2.0新增的Page_LoadComplete事件,利用FindControl()方法来获取母版页的控件,其中Page_LoadComplete事件是在生命周期内,网页加载结束时触发。当然还可以在Label控件的PreRende
2012-11-06 22:12:04 2219
原创 母版页的运行机制
原则:母版页运行机制在运行时,母版页是按照下面的步骤处理的: q 用户通过键入内容页的URL来请求某页。q 获取该页后,读取@Page指令。如果该指令引用一个母版页,则也读取该母版页。如果这是第一次请求这两个页,则两个页都要进行编译。q 包含更新的内容的母版页合并到内容页的控件树中。q 各个Content控件的内容合并到母版页中相应的 ContentPlaceHol
2012-11-06 21:43:13 2437
原创 服务器控件使用客户端脚本
例程:(1)新建一个网站,命名为ValidateCustom,默认主页名为Default.aspx。(2)向窗体中添加所需的控件,并且添加一个CustomValidator控件,具体添加的控件请参看源代码。(3)在HTML代码中创建一个JavaScript函数myValidate用于验证输入的密码是否小于6位,代码如下:function myValidate() //创建J
2012-11-06 21:28:26 2009
原创 正则表达式
例程1、验证电子邮件:q \w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*。q \S+@\S+\.\S+。2、验证网址:q HTTP://\S+\.\S+。q HTTP://\S+\.\S+。3、验证邮政编码:q \d{6}。4、其它常用正则表达式:q [0-9]:表示0~9十个数字。q \d*:表示任意个数字。
2012-11-01 22:46:05 1769
原创 动态添加控件以及批量上传文件
1、例程public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack)//第一次加载页面 { SFUPC();//
2012-10-31 23:30:41 4115
原创 生成缩略图
1、例程string fileName = filePath.Substring(filePath.LastIndexOf("\\") + 1); Session["fileName"] = fileName; string savePath = Server.MapPath("UpFile/");
2012-10-31 23:27:07 1909
原创 上传图片至服务器端
1、例程public partial class _Default : System.Web.UI.Page { public static string Constr = "server=(local);DataBase=db_control;Uid=sa;Pwd="; SqlConnection Con = new SqlConnection(Constr)
2012-10-31 23:20:53 1849
原创 panel的visible属性影响页面布局
1、例程public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { Panel1.Visible = true; Panel2.Visible = false; }
2012-10-31 23:17:31 4138 1
原创 page_load是否需进行多次绑定的说明
1、例程protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.Label1.Text = "okokok"; } }页面首次加载会显示o
2012-10-31 23:12:19 2527
原创 动态显示图片
1、例程public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void DropDownList1_SelectedIndexChanged(object sende
2012-10-31 23:02:57 2004
原创 listbox控件示例
public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void CheckBox1_CheckedChanged(object sender, EventArgs e
2012-10-31 22:58:37 2370
原创 容器控件中动态加载控件+ispostback属性说明
1、例程protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { for (int i = 1; i { Label lb_1 = new Label();
2012-10-31 22:56:38 2027
原创 正则表达式:保证字母数字,下划线
例程:protected void Page_Load(object sender, EventArgs e) { TextBox1.Attributes["onkeyup"] = "value=value.replace(/[^\\w+$]/g,'')"; }
2012-10-31 22:48:15 2872
原创 控件传值方法
例程:1、在Default.aspx页面中添加一个TextBox控件和一个LinkButton控件,在源视图中设置LinkButton控件的跳转URL地址,代码如下。asp:LinkButtonID="LinkButton1" runat="server"PostBackUrl="~/Default2.aspx">注册asp:LinkButton>2、创建一个新页名为D
2012-10-30 22:34:00 2520
原创 日期格式演示
例程:1、2012/10/30 22:36:56Label1.Text = DateTime.Now.ToString(); 2、2012年10月30日Label2.Text = DateTime.Now.ToLongDateString();3、2012/10/30Label3.Text = DateTime.Now.ToShortDateString();
2012-10-30 22:30:41 1692
原创 比较完整的异常处理和提示框架
例程:bool flag = false;SqlConnection con = new SqlConnection(Constr);con.Open(); SqlCommand cmd = newSqlCommand(cmdtxt,con);try{//执行SQL语句cmd.ExecuteNonQuery();flag = true;}catc
2012-10-30 22:13:07 1538
原创 使用第三方组件的一般方法
例程:使用FreeTextBox组件来实现在线文本编辑的功能。FreeTextBox组件是一个免费的.NET在线文本编辑器,它以.dll文件格式封装起来,以供用户使用。1、用户可以先通过添加引用的方式将该组件引用到程序中2、引用完成后,在需要该组件的页面中注册该组件并将该组件添加到合适的位置,注册该组件的代码如下:3、注册组件完成后,需要在合适的位置显示组件,显示组件时编写如下
2012-10-30 22:10:00 2315
原创 创建客户端脚本方法
方法1:在Aspx页中以声明的方式创建;方法2:使用C#代码动态创建客户端脚本。如果脚本所依赖的信息只在运行时才能获取,则这种方式是非常有用的。{//例程,在服务器控件,按钮的Click事件中添加如下代码:String scriptText = "return confirm('是否确认提交?')";ClientScript.RegisterOnSubmitStat
2012-10-30 22:05:04 530
原创 关于IsPostBack
对于IsPostBack属性在page_load事件中的用法:1、if(!IsPostBakc){//执行首次加载的代码}else{//控件引发的postback后的行为时,执行此处代码}2、例程namespace ispostback{ public partial class _Default : System.Web.UI.Pag
2012-10-30 21:33:16 667
原创 C#fixed关键字的作用
原则:1、垃圾回收机制,维护引用信息不维护指针信息2、引用类型的实例化对象在生存期内由垃圾回收机制处理,可能移动内存3、当一个类的实例化对象中含有值类型时,定义指向这些值类型的指针编译报error,因为这些内嵌在引用类型中的值类型实例会随着引用实例化对象的内存移动而移动,所以指针值在不知情的情况下会发生变化,fixed关键字做的工作便是让这样的类实例化对象(不是类类型本身,而是一个实例
2010-01-11 10:02:00 3928
原创 C#类实例对象的内存内容本质
原则:1、一个类的实例化对象,存放了类的实例字段(即为数据成员)的数据;2、也存放了.net(os系统)用来识别和管理这个类实例化对象的信息3、方法(成员函数)并不存在在这里,它的存放有两种方法可行:》函数方法放在另外一个地方,记录上他们属于哪个类这样的信息;》也可以在每个类的实例对象中存储这个函数方法实际代码的地址值即可;方法一的可行性更高,设计效率更好
2010-01-08 12:31:00 2049
原创 C#扩展方法本质
原则:1、扩展方法是一个补丁的概念,在一个进程(一个程序集)的范围内,给某个类型临时加上方法。所以扩展方法不能写在嵌套类,应该在程序集的全局区,这个程序集的顶级类中。而且要求有二(在static类中,是一个static方法),this是它和一般的方法的区别符2、扩展方法当然不能破坏面向对象封装的概念,所以只能是访问所扩展类的public成员。3、两种使用方法:using S
2010-01-08 09:58:00 6336
原创 C#线程安全对象的内部实现
原则:1、读写互斥操作某个数据对象,这在多线程中经常使用,可用lock实现安全的互斥访问 本质上,线程安全的对象其内部实现也是基于这种设计2、一个list,有get,set方法,需要get与set互斥访问: 设计一个类,具有数据成员list,get方法,set方法 类名为SecureList,在get和set方法的执行代码中操作list,代码置于lock
2010-01-07 09:39:00 5514
原创 C#集合只读效果的实现本质
原则: 1、普通集合的方法AsReadOnly返回值是一个集合的引用,但是只读属性,这用一个指向常量的指针(指针常量)很好理解,指针所指对象不一定是常量,但用这个指针(指针常量)去引用的时候,系统就认为是个常量,从而实现只读的效果
2010-01-05 21:37:00 3012
原创 C#事件处理流程
原则: 1、C#的事件驱动本质是对以前消息驱动的概念更新与升级消息驱动模型:发送方发送消息->操作系统维护消息->消息的接收方响应消息事件驱动模型:发送方引发事件->操作系统维护事件->事件的响应方处理事件在上面的模型中,发送方和接收方可以是同一个对象或者实例 2、C#事件的使用方法举例:环境描述为:在一段代码中,一个对象定义了一个事件,另外一个事件处理这个事件
2010-01-04 14:45:00 2011 1
原创 c#中使用多线程访问 winform中控件的若干问题
c#中使用多线程访问 winform中控件的若干问题2009-12-14 11:12我们在做winform应用的时候,大部分情况下都会碰到使用多线程控制界面上控件信息的问题。然而我们并不能用传统方法来做这个问题,下面我将详细的介绍。 首先来看传统方法: public partial class Form1 : Form { pu
2009-12-17 23:59:00 1066
原创 C#中构建多线程应用程序 2
C#中构建多线程应用程序 22009-11-28 20:51 3.1.3线程同步 线程同步的访问方式也称为阻塞调用,即没有执行完任务不返回,线程被挂起。可以使用C#中的lock关键字,在此关键字范围类的代码都将是线程安全的。lock关键字需定义一个标记,线程进入锁定范围是必须获得这个标记。当锁定的是一个实例级对象的私有方法时使用方法本身所在对象的引用就可以了,将上面例
2009-12-17 18:52:00 1223
原创 C#委托与事件
http://www.cnblogs.com/JimmyZhang/archive/2007/09/23/903360.htmlhttp://www.cnblogs.com/JimmyZhang/archive/2008/08/22/1274342.html
2009-12-17 17:56:00 655
原创 C#中构建多线程应用程序(1)
C#中构建多线程应用程序(1)2009-11-28 20:51 引言 随着双核、四核等多核处理器的推广,多核处理器或超线程单核处理器的计算机已很常见,基于多核处理的编程技术也开始受到程序员们普遍关注。这其中一个重要的方面就是构建多线程应用程序(因为不使用多线程的话,开发人员就不能充分发挥多核计算机的强大性能)。 本文针对的是构建基于单核计算机的多线程应
2009-12-17 17:34:00 1423
原创 多线程实时监控控件
一、前言 对于多线程实时监控控件,其实现原理无外乎另开一个线程每隔一定时间进行实时监控。大多是使用Timer控件,而system.windows.forms.timer则是主线程执行的,故不能实现。二、.NET提三种记时器 1,System.Timers.Timer: 这个Timer是使用线程池中的线程去执行任务的,可以指定线程池中的某个线程去执行任务。
2009-12-17 13:28:00 4059
原创 C#类可以自引用(建立在类是引用类型的基础上)
原则:1、C++的类类型是值类型,也就是说实例化个类对象的时候,内存分配在栈上。这样如果类类型这样定义的时候class A{ public: int i; A a;}就会陷入无限的死循环,因为实例化一个A的对象object的时候,A要根据成员类型去计算这样一个对象要占用的内存空间(数据成员根据类型确定,成员函数的代码存一份
2009-12-12 12:17:00 2223 1
原创 C#泛型概念
原则: 1、和C++的模板类似,C#的泛型本质就是类型的类型,它定义了一种类型,它的每个实例化对象是一种具体的类型,所以称之为类型的类型 2、它在实例化的时候分成两种情况:引用类型和值类型因为引用类型本质是指针,是内存的地址,所以一定位长的机器上,指针变量所用的字节数是一致的,如32位机使用4字节,泛型本质作为一种定义类型的类型,编译后会有一份二进制代码描述这个类型
2009-12-11 11:01:00 1943 2
原创 C#泛型提供的一定程度的安全性
原则:1、编译期间不知道是什么类型,在运行时确定,这是多态性的基础,所以用object这个最基类来做多态的父类型绝对合适但是因为编译期间不能确定实际使用类型,所以并不安全,而泛型可以提供一定程度上的类型安全检查,比如运行确定出的类首先要支持泛型才能通过编译,这就在编译的时候增加了一定程度的安全性
2009-12-10 15:28:00 948
原创 C#事件的引发与等待
原则:1、一段代码中引发了一个事件,那么所有注册了这个事件的对象,它们的事件处理程序都会执行起来,而且引发事件的这个类(发送器端)的执行会暂时停了,等待其他所有的类的事件处理程序完成之后再继续执行。 一个程序之中,几个对象之间如何传递交互信息,便是这样执行。 这个过程类似于C中的消息传递,一个模块(一段代码)发送一个消息sendmessage,这个消息由系统获知,其
2009-12-09 18:16:00 4357
原创 C#事件为空
原则:1、如果没有为事件写好事件处理程序,那么事件(也是个类,类对象)为空 2、前面所述的事件+=委托(事件处理程序)这种语法格式的语句,只是把事件和事件处理程序关联了起来,并且在这个时候,事件处理程序已经是肯定定义了,因为传入了事件处理程序的称,也就是说指明了事件发生时用哪个函数,这同时说明,这种关联是写在事件接收器的(一般用户编写代码都是在事件接收器,比如系统事件
2009-12-09 17:51:00 7078
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人