一切福田,不離方寸,從心而覓,感無不通。

Javascript中decodeURI()与decodeURIComponent()区别

 decodeURI()函数: 定义和用法:decodeURI()函数可对encodeURI()函数编码过的URI进行解码.语法:decodeURI(URIstring)参数描述:URIstring必需,一个字符串,含有要解码的URI组或其他要解码的文本.返回值:URIstring的副本,其中的十六进制转义序列将被它们表示的字符替换. decodeURIComponent()函数: 定义和用法:decodeURIComponent()函数可对encodeURIComponent()函数编码过的URI进行解码.语法:decodeURIComponent(URIstring)参数描述:URIstring必需,一个字符串,含有解码的URI组件或其他要解码的文本.返回值:URIstring的副本,其中的十六进制转义序列将被它们表示的字符替换.  

运行结果: http://www.test.com/My%20test/ http://www.test.com/My test/ http%3A%2F%2Fwww.test.com%2FMy%20test%2Fhttp://www.test.com/My test/

龙生   11 Sep 2012
View Details

js中对url进行编码解码的函数

  定义和用法 decodeURI() 函数可对 encodeURI() 函数编码过的 URI 进行解码。 语法

参数 描述 URIstring 必需。一个字符串,含有要解码的 URI 或其他要解码的文本。 返回值 URIstring 的副本,其中的十六进制转义序列将被它们表示的字符替换。 实例 在本例中,我们将使用 decodeURI() 对一个编码后的 URI 进行解码:

输出:

龙生   11 Sep 2012
View Details

贴一下聚合函数在LinQ to Object和LinQ to DataSet中的用法

     var member = new Member();             int recordCount;             var memberInfos = member.Paging(20, 1, "MemberId DESC", "", out recordCount);             var memberIdSum = memberInfos.Sum(c => c.MemberId);             Response.Write(memberIdSum.ToString());             Response.Write("<br/>——————————————————-<br />");               var dbHelper = DbFactory.AccessSqlServer;             var dbPaging = DBPaging.Create(dbHelper);             var ds = […]

龙生   11 Sep 2012
View Details

LINQ TO DataSet Overview

 相对而言,LINQ TO DataSet是LINQ技术中最小的一块,虽然是DB中抽取出来的一个离线的操作模型,但毕竟对象也是个内存里面的object而已。所以和LINQ TO Object相比,大多数的操作都是一样的,不同只是要根据DataSet,DataTable的结构标明字段而已。下面简单的列出LINQ TO DataSet相比LINQ TO Object一些要注意的特色。   Query UnTyped DataSet   和一般的LINQ相比,query对象是untyped DataSet的时候,使用Field<T>和SetField<T>来读写不同的column字段,下面是一个简单的例子:   DataTable orders = ds.Tables["Orders"]; DataTable orderDetails = ds.Tables["OrderDetails"];   var query =     from    o in orders.AsEnumerable()     where   o.Field<DateTime>( "OrderDate" ).Year >= 1998     orderby o.Field<DateTime>( "OrderDate" ) descending     select  o;   在这里大致要注意三点 1.因为untyped DataSet没有实现IEnumerable<T> 和 IQueryable<T>的interface,所以如果想把它作为一个可以查询的对象的话,要先用AsEnumerable() 或者AsQueryable()转换一下,将它转换成IEnumerable<T>或者IQueryable<T>对象才能用LINQ去查询。如:from o in orders.AsEnumerable()   2.一般是使用使用Field<T>(“Column A”)和SetField<T>(“Column A”)来读写不同的column字段对应的element,用它来访问相对于以前我们用ds.Tables["Orders"].Row[“RowA”][ “Column A”]的访问模式比起来,一个很大的好处就是可以避免null类型产生的exception。我们以前从DataSet里面取数据的时候,如果取的出来的是null,就会抛出exception,所以我们经常作类似if(ds.Tables["Orders"].Row[“RowA”][ “Column A”]!=null)的判断来包装我们进一步的逻辑处理,但是用Field<T>(“Column A”)就可以避免这种麻烦。因为Field<T>(“Column A”)是nullable的。这个特性的由来是<T>这个泛型的使用,比如你取int类型数据的时候,如果你觉得它可能是null,那你就可以用Field<int?>(“Column A”)去取,这样就可以避免了exception的抛出。   3 .Field<T>和SetField<T>是使用并不局限在LINQ 的query当中,在程序的其他地方也能使用,可以用它去替代以前的我们访问DataSet的方式,例如:  

    Query Typed DataSet   这就更加简单了。对于定义了类型的DataSet,我们可以象查询内存中一般的object那样去查询它。例如:  

  还有一个与untyped DataSet不同的地方是在查询它的时候不需要使用AsEnumerable() 或者AsQueryable()那样的转换方法了。因为所有定义好的DataSet都是继承了TypedTableBase<T>这个基类,而这个基类已经实现了IEnumerable<T>的interface     Query DataSet中的relation   DataSet当中有时候也是有relation的,和DB一样,例如在下面的DataSet中加入relation:  

  如果我们想像在LINQ […]

龙生   11 Sep 2012
View Details

Linq to DataSet

1.数据集( DataSet )   • DataSet 是更为广泛使用的ADO.NET 组件之一,它可以显式缓存不同数据源中的数据。   • 在表示层上DataSet 与GUI 控件紧密集成,以进行数据绑定。   • 在中间层上,它提供保留数据关系形状的缓存并包括快速简单查询和层次结构导航服务,从而可以减少对数据库的请求数。 2.查询数据集   • DataSet 虽然具有突出的优点,但其查询功能也存在限制。   • Select  方法可用于筛选和排序,GetChildRows和GetParentRow 方法可用于层次结构导航。   • 但对于更复杂的情况,开发人员必须编写自定义查询。这会使应用程序性能低下并且难以维护。 3.使用LINQ to DataSet   • 使用LINQ to DataSet 可以更快更容易地查询在DataSet 对象中缓存的数据。   • 这些查询用编程语言本身表示,而不表示为嵌入在应用程序代码中的字符串。   • LINQ to DataSet 可使Visual Studio 开发人员的工作效率更高,     因为Visual Studio IDE 提供编译时语法检查、静态类型化和对 LINQ  的智能感知的支持。   • LINQ to DataSet 也可用于查询从一个或多个数据源合并的数据 这可以使许多需要灵活表示和处理数据的方案能够实现。 4.查询数据集    • 填充DataSet     – XxxDataAdapter     – LINQ to SQL    •主要使用下面两个扩展类     – DataRowExtensions     – DataTableExtensions   • 查询支持     – 类型化数据集     – 非类型化数据集 5.启用LINQ to DataSet 功能    • 要求.NET Framework 3.5   • 引用System Data DataSetExtensions 程序集 […]

龙生   11 Sep 2012
View Details

LinQ&EF任我行(一)--LinQ to SQL (转)

LinQ家族五大成员:LinQ to Objects – 默认功能,用来实现对内存中集合对象的查询LinQ to SQL – 针对SQL Server的查询,它是一个带有可视化的操作界面的ORM工具LinQ to DataSet – 对强类型化或弱类型化的DataSet或独立的DataTable进行查询LinQ to Entity – 对实体框架中EDM定义的实体集合进行查询。LinQ to XML – 对XML文档进行查询创建等操作。 C#语法与LinQ相关的新增功能 1.隐式强类型变量在C#3.0中可以使用var关键字隐式定义强类型局部变量。 《图1》这里的var关键字定义变量与JavaScript定义变量看起来很像但二者有着本质的区别。JavaScript定义的变量是弱类型的变量,也可理解为是一种通用类型的变量,它可以容纳各种类型的值,还可以在运行过程中动态修改其中的内容类型。下面这种写法在JavaScript中是正确的:var obj = 3.14;obj = "hello world";C#中的var则是种强类型的变量,它在定义的时候会确定数据类型,分配内存空间。上面这两名代码在C#3.0中会报错,因为第一句已经把obj定义为double型的变量,第二句把字符串赋值给double是错误的操作。 隐式强类型并不能有效简化我的书写的代码,但当我们在用它来动态接收一些未知类型的数据的时候就显虽得很强大。在隐式强类型变量出现前,我们一般是使用object型变量来接收这种未知类型的数据的。 2.对象初始化这个功能可以有效简化类的getter和setter部份的代码,还可以只使用一行表达式语句实现对象的实例化与初始化操作。如定义实例类时可以使用如下代码,没有必要再把成员变量和属性分别定义了。public class LineItem{    public int OrderID { get; set; }    public int ProductID { get; set; }    public short Quantity { get; set; }    public string QuantityPerUnit { get; set; }    public decimal UnitPrice { get; set; }    public float Discount { get; set; }} 实例化LineItem对象,并为它赋值var line3 = new LineItem { OrderID = 11000, ProductID = 61, Quantity = […]

龙生   11 Sep 2012
View Details