摘要: create table a(id varchar(20) primary key,password varchar(20) not null)create table b(id int identity(1,1) primary key,name varchar(50) not null,userId varchar(20),foreign key (userId) references a(id) on delete cascade on update cascade)--表B创建了外码userId 对应A的主码ID,声明了级联删除--测试数据:insert a values('1 阅读全文
posted @ 2012-07-01 22:56 伯箫 阅读(189) 评论(0) 推荐(0) 编辑
摘要: SQL分页查询的例子:select * from(select row_number() over(order by id) as rnumb from book) as tbnamewhere tbname. rnumb >=11 and tbname.rnumb=11 and tbname.rnumb<=20 的意思就很清楚了,就是查出表中按字段ID排序后的第11到第20条数据 阅读全文
posted @ 2012-07-01 22:52 伯箫 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 整数的取余运算: 整数的取余运算是分有符号和无符号的,有自己的一套规则。这里不去深究,我看了好几次也没记住。(有兴趣可以看下一篇:关于%运算)下面看个简单的:根据这个规则:被除数= 除数*商+余数余数的符号与被除数据的符号有关虽然有时候和编译器有关,但是一般情况下都符合上面的规则。如:13%-3等价于 13=(-3)*(-4)+1 余数应该是1(符号和被除数一样是正的)所以存在-13%-3等价于 -13=(-3)*4 +(-1) 余数应该是-1(符号和被除数一样是负的)下面几个是在vs2005中经过验证的结果:表达式 结果-3 % -2 -1-3 % -5 -33 % -7 33 % -6 . 阅读全文
posted @ 2012-07-01 22:44 伯箫 阅读(875) 评论(0) 推荐(0) 编辑
摘要: C#中的字符串格式String.FormatString.Format()和ToString()是一回事。就是给个参数,再给个字符串格式,然后按照给定的格式输出参数。详细信息可以在这个链接看到,http://msdn.microsoft.com/zh-cn/library/fbxft59x.aspx Topic: Formatting Types1. 标准数字格式----- C 或者c , 货币。默认是小数点后两位,有时候后面跟个数字,比如C3,就是小数点后三位的意思。不同的文化设置,前面的货币符号是不同的。double money = 123.456;money.ToString(" 阅读全文
posted @ 2012-06-13 18:46 伯箫 阅读(581) 评论(0) 推荐(0) 编辑
摘要: C#中重载运算符的语法和其它语言差不多,比起C++来,它多一个限制,重载运算符的这个方法必须是public static的下面以重载+为例:using System;using System.Collections.Generic;using System.Text;namespace 运算符重载{ class fushu { public fushu(int varA, int varB) { this.A = varA; this.B = varB; } //把成员变量定义成公有... 阅读全文
posted @ 2012-06-12 21:56 伯箫 阅读(735) 评论(0) 推荐(0) 编辑
摘要: lIQueryable接口与IEnumberable接口的区别: IEnumerable 泛型类在调用自己的SKip 和 Take 等扩展方法之前数据就已经加载在本地内存里了,而IQueryable 是将Skip ,take 这些方法表达式翻译成T-SQL语句之后再向SQL服务器发送命令。也是延迟在我要真正显示数据的时候才执行。 阅读全文
posted @ 2012-06-11 21:24 伯箫 阅读(191) 评论(0) 推荐(0) 编辑
摘要: Readonly和Const在初值定下来之后都只读不可写。Readonly是“只读变量”,Const才是“真常量”。Const的值是在编译时内联到引用程序集当中,也就是写死了,如果程序集A引用了含有Const常量的程序集B,那么程序集A看到的Const常量就是一个固定的值,如果这个值变了,那么程序集B中的新值要重新编译一遍才能被A识别。而使用Readonly的话,值是运行时确定的,就是说程序集A在程序集B中动态获取了一把。比较:conststatic readonlyreadonly初始化的时机声明时声明时或构造函数声明时或构造函数值确定的时机编译时运行时运行时可定义的位置字段或函数内的局部常 阅读全文
posted @ 2012-06-11 19:41 伯箫 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 当我们从数据库中取出一行数据的时候,一开始它们还是一个DataRow,或者是一个DataReader我们要需地把它们一个一个转换成C#语言中我们所需要的类型。如dr["content"].TosString(); 而数据库表中的这个content字段可能是NULL,那么,我们在转换之前,就要先进行判断。怎么进行判断呢?(1)、如果dr是DataRow对象 dr.Table.Columns.Contains("content");(2)、如果dr是DataReader 对象就用下面这种方式。 dr.IsDBNull(dr.GetOrdinal(" 阅读全文
posted @ 2012-05-27 19:14 伯箫 阅读(442) 评论(0) 推荐(0) 编辑
摘要: 我们在借助于sqlHelper使用ExecuteDataReader的时候,是不能立即使用using关键字和自动调用dispose或者close来关闭数据库的连接的。为什么?因为DataReader不像SqlDataAdapter,会将查询到的结果放到一个DataSet中,然后断开与数据库的连接。DataReader必须保持与数据库的长期连接。那么怎么样来使得它在用完之后进行释放呢?ExecuteReader有一个重载的方法,ExecuteReader(CommandBehavior.CloseConnection); 看下面的一个具体的例子。public static SqlDataR... 阅读全文
posted @ 2012-05-27 18:49 伯箫 阅读(360) 评论(0) 推荐(0) 编辑
摘要: URL重写:祥细的过程见:http://www.cnblogs.com/scy251147/archive/2011/04/24/2026330.html最简单的一种方式:http://yuweiqiang.blog.163.com/blog/static/66570412011723438599/(不用实现IHttpModules接口)为什么要URL重写?1、有利于SEO,带参数的URL权重较低;2、地址看起来更正规,推广uid 浏览器通过URL向服务器发送一个页面请求的时候,中间要经过“过滤器”,过滤器是早就写好的。如果程序员要在其中间加一些东西,可以通过给上下文对象添加事件的方式来做。重 阅读全文
posted @ 2012-05-10 23:06 伯箫 阅读(319) 评论(0) 推荐(0) 编辑