摘要:
一、行转列 1、建立表格 ifobject_id('tb')isnotnulldroptabletb go createtabletb(姓名varchar(10),课程varchar(10),分数int) insertintotbvalues('张三','语文',74) insertintotbvalues('张三','数学',83) insertintotbvalues('张三','物理',93) insertintotbvalues('李四','语文 阅读全文
摘要:
正则表达式中的大多数结构匹配的文本会出现在匹配的结果中,但是有时候不但关心目标文本的匹配,还要判断目标文本左右两侧的文本是否符合要求,这种要求的正则里叫做断言。常见的断言有三类:单词边界、行的起始、结束的位置、环视。单词边界:正则记着:\b,它匹配“单词边界”的位置。使用情况: \bword\b \bword word\baword successawordswords successword success success success\B是非单词边界。行起始、结束位置在正则表达式中,这类匹配位置的元素叫做锚点,用来定位的,常用的锚点还有^和$,,分别匹配字符串的开始和结束的位置,如果. 阅读全文
摘要:
正则指引-括号之前学习字符组和量词,量词是形容字符组的,但是有时候我们希望用量词来形容多个元素,我们可以用括号完成,我们可以使用(...)把目标元素括起来,就可以把括号内部看成一个整体,在括号外部使用量词,量词就会对括号内部的所有元素作用。用括号改变量词的作用元素:re.research(r"^ab+$","ab"); != none //truere.research(r"^ab+$","abb"); != none //truere.research(r"^(ab)+$","abb 阅读全文
摘要:
量词:指定字符组出现的次数例如\d\d\d表示出现三个字符组,我们可以使用量词表示法:\d{3}量词可以表示字符组出现的次数,还可以表示字符组出现次数的范围:\d{0,10} : 就表示这边可以匹配出现0到10次之间整数。一般量词的表示:{n}{m,n} 表示范围:m<= X <=n{m,} 表示范围:m<= X ,X可以无穷大{0,n} 表示范围:0<= X <=n还存在一组常用量词,也可以叫量词简记法:* :{0,}+ :{1,}? :{0,1}点号:可以表示任意字符,除去换行符\n。 自制任意字符是:[\s\S] 匹配优先量词:会对量词的匹配优先,量词后面的 阅读全文
摘要:
字符组:在同一个位子可能出现的各种字符。用正则表达式判断数字字符:re.Search("[0123456789]",charStr) != None 其中[0123456789]以字符串形式给出正则表达式,他是一个字符组,表示可以是0到9的任意一个字符。Net中Regex.IsMatch(charStr,"[0123456789]");在默认情况下,Search(Pattern,String)只会判断某个子串能否匹配pattern,只要pattern能匹配String中的一部分,也认为是匹配成功,为了测整个String是否能匹配pattern,要在pat 阅读全文
摘要:
JS数据类型js中有5种数据类型:Undefined、Null、Boolean、Number和String。还有一种复杂的数据类型Object,Object本质是一组无序的名值对组成的。Undefined类型只有一个值,即undefined,使用var声明变量,但是未对初始化的,这个变量就是Undefined类型的,例子:var i;alert(i == undefined);//truevar i;与var i = undefined;这两句是等价的。包含Undefined值的变量和未定义的变量是不一样的。Null类型也只有一个值:null.null表示一个空对象的指针。Boolean类型: 阅读全文
摘要:
运用Iframe和script可以实现简单的异步加载:调用页面如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <title></title> <script type=&qu 阅读全文
摘要:
Ajax的XMLHttpRequest对象编写一个例子:从服务器取回一个Hello Ajax字符串。HTML: <input type="button" value="ajax提交" onclick="Ajax();" /> <div id="result"> </div>js:定义Ajax函数,异步获取数据1、声明一个XMLHttpRequest对象2、对XMLHttpRequest对象实例化3、调用XMLHttpRequest对象的open(),设置服务器的URL和请求的方式 阅读全文
摘要:
声明一个可变数量的参数:Static int Add(params int[] values){ int sum = 0; if(value != null) { for(int x = 0;x<values.Length;x++) sum += values[x]; } return sum;}上面这个方法除去params,是一个普通的方法,接受int数组,返回组中的所以项之和。我们可以这样调用:Add(new int[]{1,2,3});但是阅读性不是很高,我们希望能更简洁:Add(1,2,3);这时,由于params关键字,是可以编译通过和运行的。params只能应用于方法参数中的 阅读全文
摘要:
设计一个方法的参数的时,可为部分或全部参数分配默认值。调用其方法时,可以重新指定分配了默认值的参数,也可以使用默认值。重新指定分配默认值的参数时,可以显式地为指定参数名称赋值,隐式指定的时候,是根据方法参数的顺序,靠c#编译器的推断。代码示例:void M(int x=9,string s="a",DateTime dt = default(DateTime)){...}Main(){ M();//使用默认值 M(8,"b")://隐式指定方法参数,没有指定的使用默认值 M(6,"v",DateTime.Now);//同上 M(6,d 阅读全文
摘要:
CLR还支持类型构造器,也称为静态构造器。c#类型构造器可应用引用类型和值类型,永远没有参数。主要作用是:设置类型中静态字段的初始化。类型构造器不一定要在类中定义,但是最多也只能有一个。例:class SomeType{ static SomeType(){}}jit编译器在编译一个方法时,会查看代码引用哪些类型。任何类型定义了类型构造器,jit编译器都会检查当前AppDomain是否已经执行了这个类型构造器,如果没有就执行,已经执行了就直接返回,不再次执行。在多线程的环境下,可能同一时间有多个执行相同的方法,CLR希望每一个AppDomain中一个类型构造器只执行一次,在调用类型构造器时,使 阅读全文
摘要:
CLR总是允许创建值类型的实例。另外值类型不一定需要定义构造器,c#编译器不会为值类型生成默认的无参构造器。引用类型包含值类型字段,引用类型初始化后,值类型默认会被初始化为0、Null。CLR允许为值类型定义构造器,但是构造器的调用,就必须显式的写代码来调用它们。CLR不允许为值类型定义无参构造器。只能定义有参构造器,并且构造器中必须为值类型中的所有字段全部赋值,否则报错。c#中虽然没有无参构造器,但是可以使用这个语法初始化在内部的字段:StructType st = new StructType();//为内部字段初始化0或者null所以对定义有参构造器的参考写法:public Struct 阅读全文
摘要:
引用类型构造器是将类型的实例初始化为良好状态的一种特殊方法。创建一个引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(对象指针、同步块索引),最后调用类型中定义的实例构造器来设置对象的初始化状态。构造引用类型的对象时,在调用类型的实例构造器之前,为对象分配所有字段的内存总是被先归零或为null。实例构造器永远不能被继续。如果定义的类中没有显式构造器,c#编译器将定义一个默认构造器,在它的实现中,只是简单调用基类的无参构造器。所以:public class SomeType{}等价于public class SomeTyoe{ public SomeType():base 阅读全文
摘要:
常量:是一个特殊的符号,有一个从不变化的值。它的值是在编译时确定的。编译器将常量保存到程序集的元数据中,所有只能是编译器认识的基元类型作为常量。常量被看成类的一部分,是看出静态成员。代码引用一个常量符号,会在定义常量的元数据中查找该符号,提取之,并嵌入代码,生成的IL中是值本身。在c#中使用的是const关键字。字段:已一种数据成员,可以容纳任何的数据类型,不仅仅想常量一样只能存储基元类型。CLR支持类型字段和实例字段类型字段:用于容纳字段数据的动态内存是在类型对象中分配的,而类对象是在类型加载到一个AppDomain中创建的。通常是在引用该类型的任何方法首次进行JIT编译的时候。实例字段:用 阅读全文
摘要:
partial关键字可以用在类、接口和结构上面。他告诉C#编译器,源代码文件可能包含在多个文件中。主要原因:1、源代码控制。可以使多个程序员同时编辑代码2、在同一个对象中,将不同的逻辑单元分开编写3、代码拆分,web窗体等,在VS中自动创建两个源代码文件分部功能是c#编译器实现的,CLR对分布类是一无所知的 阅读全文