C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  496 随笔 :: 0 文章 :: 634 评论 :: 571万 阅读

05 2013 档案

摘要:一、约束的分类 在SQLServer中,有3种不同类型的约束。 1、实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键。 2、域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束。 3、参照完整性约束 如果某列的值必须与其他列的值匹配,那就意味着需要一个参照完整性约束,例如外键。二、约束命名 在学习约束之前,首先来了解下为约束命名需要注意哪些地方。 SQLServer在我们不提供名称时,会自动创建名称,但是由系统自动创建的名称并不是特别有用。 例如,系统生成的主键名称可能是这样的:PK_Employees_145... 阅读全文
posted @ 2013-05-31 00:14 逆心 阅读(42814) 评论(3) 推荐(15) 编辑

摘要:DataTable是一个使用非常多的类,记得我在刚刚开始学习.Net的时候就已经了解并用过这个类,但如今再来看看,才发现这个类非常之复杂,复杂表现在哪些地方呢?主要是这个类与其他很多类都有关联,也就是说,你要玩透DataTable这个类,你必须要了解很多其他的类。 DataTable是一个很古老的类,再往前不清楚,但是.Net2.0就肯定有了。主要用于数据的封装与存储等等。这个类,你要是在公司里工作,必定会用到,无论是维护旧系统或是使用一些老框架都会用到,必须要熟悉常用的操作。 下面给出一些DataTable的常用操作, 1、查找Select static void M... 阅读全文
posted @ 2013-05-29 17:51 逆心 阅读(3599) 评论(1) 推荐(0) 编辑

摘要:有一些开发人员不推荐使用完整性约束,你可能听过以下这么几点不使用外键的原因。 1、数据更新有可能和约束冲突。 2、当前的数据库设计如此灵活,以致于不支持引用完整性约束。 3、数据库为外键建立的索引会影响性能。 4、当前使用的数据库不支持外键。 5、定义外键的语法并不简单,还需要查阅。一、反模式:无视约束 即使第一感觉告诉你,省略外键约束能使得数据库设计更加简单、灵活,或者执行更加高效,你还是不得不在其他方面付出相应的代价 -- 必须增加额外的代码来手动维护引用完整性。 1、完整性问题 很多人对引用完整性的解决方案是通过编写特定的程序代码来确保数据间的关系的。每次插入新记录时... 阅读全文
posted @ 2013-05-28 22:56 逆心 阅读(2093) 评论(1) 推荐(0) 编辑

摘要:本文的目标就是要确认那些使用了主键,却混淆了主键的本质而造成的一种反模式。一、确立主键规范 每个了解数据库设计的人都知道,主键对于一张表来说是一个很重要,甚至必需的部分。这确实是事实,主键是好的数据库设计的一部分。主键是数据库确保数据行在整张表唯一性的保障。它是定位到一条记录并且确保不会重复存储的逻辑机制。主键也同时可以被外键引用来建立表与表之间的关系。 难点是选择那一列作为主键。大多数表中的每个属性值都有可能被很多行使用。例如姓名,电子邮件地址等等都不能保证不会重复。 在这样的表中,需要引入一个对于表的域模型无意义的新列来存储一个伪值。这一列被用作这张表的主键,从而通过它来确定表中... 阅读全文
posted @ 2013-05-28 00:23 逆心 阅读(7958) 评论(3) 推荐(3) 编辑

摘要:一、乱穿马路模式介绍 程序员通常使用逗号分隔的列表来避免在多对多关系中创建交叉表,这种设计方式定义为一种反模式,称为乱穿马路。 例如:在一个产品管理系统中,一个人可以有多个产品,一个产品必须对应一个人,因此有如下数据库: 但是,随着时间的推移,出现了一个产品可能会有多个联系人。于是为了最小限度地修改数据库,可能不少人会将Account_Id的类型修改成varchar,这样就可以列出该列中的多个账号Id,每个Id之间用逗号分隔。这样的设计貌似可行,因为并没有创建额外的表或者列。仅仅改变了一个字段的数据类型就成功达到目的。以下我们来列举一下这样做的缺点。改变之后的数据库外键去掉,同时Pr... 阅读全文
posted @ 2013-05-27 22:22 逆心 阅读(1015) 评论(0) 推荐(0) 编辑

摘要:特性的定义:公共语言运行时允许添加类似关键字的描述声明,叫做attribute,它对程序中的元素进行标注,如类型、字段、方法、和属性等。attribute和.NetFramework文件的元数据保存在一起,可以用来在运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。 定制特性attribute,本质上是一个雷,其为目标元素提供关联附加信息,并在运行期以反射的方式来获取附加信息。一、特性的通用规则。 1、定制特性可以应用的目标元素包括:程序集(assembly)、模块(module)、类型(type)、属性(proprety)、事件(event)、字段(field)、方法(me... 阅读全文
posted @ 2013-05-26 19:49 逆心 阅读(1186) 评论(1) 推荐(1) 编辑

摘要:聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这只是默认行为而已。 示例,建表时通过指定主键为非聚集索引使主键列不为聚集列:CREATE TABLE MyTableKeyExample{ Column1 int IDENTITY PRIMARY KEY NONCLUSTERED, Column2 int }一、堆表与聚集表 没有聚集... 阅读全文
posted @ 2013-05-23 15:29 逆心 阅读(1115) 评论(0) 推荐(1) 编辑

摘要:缓存从分布来说有两种:一、客户端缓存 客户端缓存其实是浏览器的事情,当我们去访问一个新的网站的时候,第一次可能要花一阵子时间才能载入整个页面。然而以后再去时间就会大大缩短,原因就在于客户端缓存。现在浏览器都非常智能,它会在客户机器的硬盘上保留许多静态的文件,比如各种gif,jpeg等等。等以后再去的时候,它会尽量使用本地缓存里的文件,只有服务器端的文件更新了,或是缓存里面的文件过期了,它才会再次从服务器端下载这些东西。很多时候是浏览器替我们做了这件事情。二、服务器缓存 有些东西没有办法或者说是不适宜在客户端缓存的,这个时候就必须在服务器端想办法了。服务器端缓存从性质上看,又可以分为两种... 阅读全文
posted @ 2013-05-23 14:20 逆心 阅读(754) 评论(0) 推荐(0) 编辑

摘要:进程那篇深度不够进程那篇深度不够进程那篇深度不够进程那篇深度不够进程那篇深度不够http://www.cnblogs.com/kissdodog/archive/2013/05/20/3089127.html 阅读全文
posted @ 2013-05-21 12:50 逆心 阅读(599) 评论(0) 推荐(0) 编辑

摘要:一、系统过滤器使用说明 1、OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByPa 阅读全文
posted @ 2013-05-21 12:30 逆心 阅读(11966) 评论(4) 推荐(6) 编辑

摘要:进程(Process)是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源。进程之间是相对独立的,一个进程无法直接访问另一个进程的数据(除非分布式),一个进程运行的失败也不会影响其他进程的运行,Windows系统就是利用进程把工作划分为多个独立的区域的。 进程可以理解为一个程... 阅读全文
posted @ 2013-05-20 18:51 逆心 阅读(6894) 评论(0) 推荐(2) 编辑

摘要:在研究性能的时候,完全可以使用Stopwatch计时器计算一项技术的效率。但是有时想知道某想技术的性能的时候,又常常想不起可以运用Stopwatch这个东西,太可悲了。属性: Elapsed 获取当前实例测量得出的总运行时间。 ElapsedMilliseconds 获取当前实例测量得出的总运行时间(以毫秒为单位)。 ElapsedTicks 获取当前实例测量得出的总运行时间(用计时器计时周期表示)。 IsRunning 获取一个指示 Stopwatch 计时器是否在运行的值。 方法 GetTimestamp 获取计时器机制中的当前最小... 阅读全文
posted @ 2013-05-20 16:50 逆心 阅读(6342) 评论(1) 推荐(0) 编辑

摘要:互斥体实现了“互相排斥”(mutual exclusion)同步的简单形式(所以名为互斥体(mutex))。互斥体禁止多个线程同时进入受保护的代码“临界区”。因此,在任意时刻,只有一个线程被允许进入这样的代码保护区。 任何线程在进入临界区之前,必须获取(acquire)与此区域相关联的互斥体的... 阅读全文
posted @ 2013-05-16 22:39 逆心 阅读(2367) 评论(1) 推荐(4) 编辑

摘要:关于新近所了解到的东西,在一个WebForm项目里面长时间的任务应该怎么办,比如我需要一个采集器,到网上采集数百万条数据,又比如我要对一个数十M的文本文件进行切词分析并将得到的结果显示给用户。这些东西,当用户需要的时候再在后台处理是无论你的WebForm效率如何高都是来不及的,必须要有一些工具辅助,这个时候其实就可以自己写一些控制台程序或者是WinForm程序作为辅助程序,甚至可以包括在WebForm项目中。实际上,回头想想,尽管大多数C#程序员做的都是Web方面的开发,但是Web程序并没有自己想象的那么有用,说穿了仅仅是一个显示数据的东西,当然你也可以说数据也可以由Web程序的用户来添加.. 阅读全文
posted @ 2013-05-16 10:51 逆心 阅读(1607) 评论(0) 推荐(0) 编辑

摘要:链表是一种线性数据结构,使用它能动态的存储一种数据结构。链表是n个数据元素的有限序列,其元素需要自己定义,既可以是一个整数或一个字符串,也可以是一个复杂的记录类型。 链表是一种重要的数据结构,该结构由节点组成。每个节点包含两部分数据,第一部分是节点本身的数据,第二部分是指向下一节点的指针。对于单向链表,链表中存在两个特殊的节点,分别为“头节点”和“尾节点”。头节点本身没有数据,只存储下一个节点的指针,尾节点只存储数据。 下面给出一个简单的节点示例: public class ListNode {public ListNode Next; public int ... 阅读全文
posted @ 2013-05-15 23:27 逆心 阅读(668) 评论(0) 推荐(0) 编辑

摘要:Timer是一个经常使用的东西,它有3种类型的Timer。分别是: 1.定义在System.Windows.Forms里; 2.定义在System.Threading.Timer类里; 3.定义在System.Timers.Timer类里; ◆System.Windows.Forms.Timer 应用于WinForm中的,它是通过Windows消息机制实现的,类似于VB或Delphi中的Timer控件,内部使用API SetTimer实现的。它的主要缺点是计时不精确,而且必须有消息循环,Console Application(控制台应用程序)无法使用。 ◆System.Time... 阅读全文
posted @ 2013-05-15 11:38 逆心 阅读(969) 评论(0) 推荐(1) 编辑

摘要:一、托管 .Net所指的托管资源到底是什么意思呢?是相对于所有资源,还是只限于某一方面的资源?很多人对此不是很了解。 其实.Net所指的托管只是针对内存这一个方面,并不是对于所有的元素;因此对于Stream,数据库的连接GDI+的相关对象,还有Com对象等等,这些资源并不是受到.Net管理而统称为非托管资源。而对于内存的释放和回收,系统提供了GC(Garbage Collector),而至于其他资源则需要手动进行释放。二、垃圾 什么是垃圾。.Net类型分为两大类,一个就是值类型,另一个就是引用类型。前者是分配在栈上,并不需要GC回收;后者是分配在堆上,因此它的内存释放和回收需要通过G... 阅读全文
posted @ 2013-05-15 00:28 逆心 阅读(3340) 评论(1) 推荐(3) 编辑

摘要:事件,我相信开始学C#的朋友都会用过,在C#中很常见,比如点击一个按钮,上传一张图片等等,在WinForm或WebForm中都在使用着事件。今天,趁着有少少事件,我决定来重温一下之前被自己略过的东西 - 事件。 好记得在之前,在用一个方法的时候,如果参数里面有个Handler,就好害怕,其实事... 阅读全文
posted @ 2013-05-14 00:10 逆心 阅读(952) 评论(0) 推荐(1) 编辑

摘要:上一节在研究Open Flash Chart时,漏掉不少东西,只是简单的熟悉了一下后端的属性设置。今天再来补充一下。一、显示Open Flash Chart图表 Open Flash Chart前台配置: swfobject.embedSWF(flashPath, "chart", "100%", "100%", "9.0.0", "expressInstall.swf",{}, {},{id:'custom'}); // ID为custom 上面的太虚了,来说个实际点的例子,在 阅读全文
posted @ 2013-05-13 12:43 逆心 阅读(4374) 评论(0) 推荐(0) 编辑

摘要:C#中结构类型和类类型在语法上非常相似,他们都是一种数据结构,都可以包括数据成员和方法成员。 结构和类的区别: 1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。 2、结构类型直接存储成员数据,让其他类的数据位于对中,位于栈中的变量保存的是指向堆中数据对象的引 阅读全文
posted @ 2013-05-11 15:45 逆心 阅读(109350) 评论(9) 推荐(19) 编辑

摘要:之前学习C#没有做笔记的习惯,因此有些基础上的东西并没有很好地整理起来,虽然这些东西比较常用,因此也没什么影响,但总觉得不整理一下感觉老是有种陌生感。今天特别整理一下C#4种类型的参数。一、按值传递参数 值参数是通过将实参的值复制到形参,来实现按值传递到方法,也就是我们通常说的按值传递。 方... 阅读全文
posted @ 2013-05-11 15:28 逆心 阅读(7189) 评论(0) 推荐(2) 编辑

摘要:一个Nullable类型就是基本类型加上一个"是否为null指示器"的合成类型。对于一个类型,如果既可以给他分配一个值,也可以给它分配null引用,我们就说这个类型是可空的。 可空类型会多了两个属性 1、HasValue 是否有值 2、Value 获取值 来看个DEMO,这个东西,真没什么好说的。就是容易忘记,如何判断。public class Program { static void Main(string[] args) { int? avalue = null; if (avalue.Ha... 阅读全文
posted @ 2013-05-11 12:22 逆心 阅读(499) 评论(0) 推荐(0) 编辑

摘要:进程是存在独立的内存和资源的,但是AppDomain仅仅是逻辑上的一种抽象。一个process可以存在多个AppDomain。各个AppDomain之间的数据时相互独立的。一个线程可以穿梭多个AppDomain。一、属性 ActivationContext 获取当前应用程序域的激活上下文。 ApplicationIdentity 获得应用程序域中的应用程序标识。 ApplicationTrust 获取说明授予应用程序的权限以及应用程序是否拥有允许其运行的信任级别的信息。 BaseDirectory 获取基... 阅读全文
posted @ 2013-05-09 18:46 逆心 阅读(3756) 评论(0) 推荐(2) 编辑

摘要:今天公司要求开发一个曲线图,简单看了一下之前公司的一个系统,发现一个曲线图效果还不错,查了一下叫OpenFlashChart,还是很不错的,很多人用。研究了一下,发现还不错,特地写了个DEMO测试下。public ActionResult ITooltip() { int DateLen = Convert.ToInt32(Request["d"]); int DateMode = Convert.ToInt32(Request["m"]); OpenFlashChart.OpenFlashChart char... 阅读全文
posted @ 2013-05-08 15:31 逆心 阅读(3311) 评论(1) 推荐(0) 编辑

摘要:XML系列化更详细的文章:http://www.cnblogs.com/kissdodog/p/3468385.html 序列化的作用是什么?为什么要序列化? 1、在进程下次启动时读取上次保存的对象的信息。 2、在不同的应用程序域或进程之间传递数据。 3、在分布式应用程序中的各应用程序之... 阅读全文
posted @ 2013-05-07 22:16 逆心 阅读(1152) 评论(0) 推荐(0) 编辑

摘要:HttpRuntime在ASP.NET处理请求中负责的是创建HttpContext对象以及调用HttpApplicationFactory创建HttpApplication。 其定义如下: public sealed class HttpRuntime { public HttpRuntime(); //获取 System.Web.HttpRuntime 所在的应用程序域的应用程序标识。 public static string AppDomainAppId { get; } //获取承载在当前应用程序域中的应用程序的应... 阅读全文
posted @ 2013-05-07 17:49 逆心 阅读(4206) 评论(2) 推荐(2) 编辑

摘要:Cache类,是一个用于缓存常用信息的类。HttpRuntime.Cache以及HttpContext.Current.Cache都是该类的实例。一、属性属性说明Count获取存储在缓存中的项数。EffectivePercentagePhysicalMemoryLimit获取在 ASP.NET 开始从缓存中移除项之前应用程序可使用的物理内存百分比。EffectivePrivateBytesLimit获取可用于缓存的字节数。Item获取或设置指定键处的缓存项。二、方法方法名称说明Add将指定项添加到 Cache 对象,该对象具有依赖项、到期和优先级策略以及一个委托(可用于在从 Cache 移.. 阅读全文
posted @ 2013-05-07 15:43 逆心 阅读(39208) 评论(13) 推荐(33) 编辑

摘要:一、路由规则说明 先来看MVC中的默认路由的说明"{controller}/{action}/{id}", // URL with parameters 对于Url /Home/Index/1 匹配结果是: controller : "Home" action : "Index" Id : "1" 对于Url /a.b/c-d/e-f 匹配结果是: controller : "a.b" action : "c-d" Id : "e-f" 为了Asp.net 阅读全文
posted @ 2013-05-05 14:23 逆心 阅读(2564) 评论(1) 推荐(2) 编辑

摘要:在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式。在MVC中,提供了模型绑定机制。让后台获取表单或Url中的参数变得更加简单。一、基本模型绑定 你可以直接在参数中用字符串,整型变量,实体或者是List的方式获取表单提交的参数。 参数中的这些东西都是与表单中的Html控件的name属性一一对应的。 public ActionResult PersonAdd(int Id) { return View(); } 例如以上代码,它能够匹配Url中的Id参数。如以下两种方法Id都能够... 阅读全文
posted @ 2013-05-05 13:57 逆心 阅读(12982) 评论(6) 推荐(5) 编辑

摘要:前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解。System.ComponentModel.DataAnnotations一、基础特性 一、Required 必填选项,当提交的表单缺少该值就引发验证错误。 二、StringLength 指定允许的长度 指定... 阅读全文
posted @ 2013-05-04 22:28 逆心 阅读(35587) 评论(11) 推荐(22) 编辑

摘要:HttpServerUtility是一个工具类,为了在后台处理请求方便获取到一些常用的类型,Asp.net将很多常用的东西封装到这里。 比如可以使用其进行URL编码解码, HTML编码解码等。 // 获取服务器的计算机名称。 public string MachineName { get; } // 获取和设置请求超时值(以秒计)。 public int ScriptTimeout { get; set; } //清除前一个异常。 public void ClearError(); //创建 COM... 阅读全文
posted @ 2013-05-04 21:48 逆心 阅读(1190) 评论(0) 推荐(2) 编辑

点击右上角即可分享
微信分享提示