.NET 数据访问架构指南10

时间:2010-02-01 10:02:24  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读: 方法比较        如果要对从数据源中得到的一行数据执行绑定操作,可以用SqlDataAdapter对象填充DataSet 或DataTable对象,其方式与在先前讨论过的获取多行数据及重复场景中描述的方式相同。然而,除非特别需要DataSet 或DataTable对象的功能,否则应当避免创建这些对象。        如果需要获取单行数据,那么请使...
  正文:获取单行数据
  
    在这种场景中,将从数据源中获取包含一组指定列的单行数据。例如,你得到一个客户ID,并希望查找与客户相关的细节;或得到一个产品ID,并希望得到产品信息。
  
    方法比较
  
    如果要对从数据源中得到的一行数据执行绑定操作,可以用SqlDataAdapter对象填充DataSet 或DataTable对象,其方式与在先前讨论过的获取多行数据及重复场景中描述的方式相同。然而,除非特别需要DataSet 或DataTable对象的功能,否则应当避免创建这些对象。
  
    如果需要获取单行数据,那么请使用下面的一种方法:
  使用存储过程输出参数.
  
  
  使用SqlDataReader对象.
    这两种方法都避免了在服务器端创建结果集,在客户端创建DataSet对象的不必要额外开销。每种方法的相对性能要依赖于强度等级及数据库链接池化是否被使能。当数据库链接池化使能时,性能测试表明存储过程方法在高强度环境下(同时存在200多链接)其性能比SqlDataReader方法高近30%。
  
    使用存储过程输出参数
  
    如下情况中使用存储过程输出参数:
  要从链接池化使能的多层Web应用程序中获得一行数据。
    使用SqlDataReader对象
  
    下列情况,需使用SqlDataReader对象:
  除了数据值,还需要元数据时。可以利用数据阅读器的GetSchemaTable方法获取列元数据。
  
  
  未使用链接池化时。在链接池化无效时,SqlDataReader对象在所有强度环境下都是好方式;性能测试表明,在200浏览器链接时,此方法比存储过程方法在性能上要高约20%。
    更多信息
  如果知道查询结果只需返回一行,那么在调用SqlCommand对象的ExecuteReader 方法时,使用CommandBehavior.SingleRow枚举值。一些供应器,如OLE DB .net数据供应器,用此技巧来优化性能。例如,供应器使用IRow接口(如果此接口存在)而不是代价更高的IRowset接口。这个参数对SQL Server .NET数据供应器没有影响。
  
  
  在使用SqlDataReader对象时,总是应当通过SqlDataReader对象的类型化存取器方法,如GetString 和GetDecimal,获得输出参数。这样做就避免了不必要的类型转换。
    获取单项数据
  
    在本场景中,要获取单项数据。例如,提供了产品ID后,希望查询单一的产品名;或,给出了客户名后,希望查询客户的信用等级。在这种场景中,为得到单项数据,通常不希望引发创建DataSet 对象或甚至是 DataTable对象的额外开销。
  
    也许只希望检查数据库中是否存在特定的行。例如,当新用户在网站注册时,需要检查所选用户名是否已经存在。这是单项数据查询中很特殊的例子,但在此例子中,返回一个简单的布尔返回值就足够了。
  
    方法比较
  
    当从数据源获取单项数据时,考虑下面的方法:
  同存储过程一起使用SqlCommand对象的ExecuteScalar方法。
  
  
  使用存储过程输出或返回参数。
  
  
  使用SqlDataReader对象。
    ExecuteScalar方法直接返回数据项,因为它是为只返回单个值的查询设计的,与存储过程输出参数和SqlDataReader方法相比,它需要更少的代码
  
    从性能方面来说,应当使用存储过程输出或返回参数,因为测试结果表明,存储过程方法在从低强度到高强度环境中(从同时不到100浏览器链接到200浏览器链接)提供了一致的性能。
  
    更多信息
  如果通过ExecuteQuery方法所执行的查询返回多列和/或行,那么此方法只返回第一行的第一列。
    通过防火墙建立链接
  
    需要经常配置互联网应用程序以使它能够通过防火墙链接到SQL Server。例如,许多Web应用程序及防火墙的主要结构组件是周边网络(也被称为DMZ或非军事化区),它们用于隔离高端Web服务器与内部网络。
  
    通过防火墙链接到SQL Server时,需要对防火墙,客户和服务器进行明确配置。SQL Server提供了客户网络应用程序和服务器网络应用程序以帮助进行配置。
".NET 数据访问架构指南10"由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/aspnet/12698.html


关键字:

关于《.NET 数据访问架构指南10》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td