摘要: 引言在C#中的委托和事件一文的后半部分,讲述了Observer(观察者)模式,并使用委托和事件实现了这个模式。实际上,不使用委托和事件,一样可以实现Observer模式。在本文中,我将使用GOF的经典方式,再次实现一遍Observer模式,同时将讲述在C#中的委托和事件一文中没有提及的推模式(Push)和拉模式(Pull)。设计思想概述在C#中的委托和事件一文后半部分中我已经较详细的讲述了Observer设计模式的思想,所以这里仅简单的提及一下。Observer设计模式中实际上只包含了两类对象,一个是Subject(主题),一个是Observer(观察者)。它们之间的角色是:Subject:主 阅读全文
posted @ 2014-01-24 17:19 胡狗880601 阅读(220) 评论(0) 推荐(0) 编辑
摘要: 引言委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问 阅读全文
posted @ 2014-01-24 17:16 胡狗880601 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 链接http://www.cnblogs.com/lanzi/archive/2010/10/26/1861338.html 开窗函数oevr()用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:1:over后的写法: over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数 over(partition by deptno)按照部门分区 over(partition by deptno o. 阅读全文
posted @ 2014-01-24 16:26 胡狗880601 阅读(459) 评论(0) 推荐(0) 编辑
摘要: partitionby关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partitionby用于给结果集分组,如果没有指定那么它把整个结果集作为一个分组create database StudentDB gouse StudentDB gocreate table Student --学生成绩表 ( id int, --主键 Grade int, --班级 Score int --分数 ) goinsert Student select 1,1,88 union all select 2,1,66 union all. 阅读全文
posted @ 2014-01-24 15:54 胡狗880601 阅读(845) 评论(0) 推荐(0) 编辑
摘要: table1结构如下id intname varchar(50)declare @id intdeclare @name varchar(50)declare cursor1 cursor for --定义游标cursor1select * from table1 --使用游标的对象(跟据需要填入select文)open cursor1 --打开游标fetch next from cursor1 into @id,@name --将游标向下移1行,获取的数据放入之前定义的变量@id,@name中w... 阅读全文
posted @ 2014-01-24 11:46 胡狗880601 阅读(594) 评论(0) 推荐(0) 编辑