[ 来源:www.it55.com | 作者: | 时间:2007-07-15 | 收藏 | 推荐 ] 【大 中 小】
.NET框架组件数据提供程序
.NET框架组件中的数据提供程序是应用程序与数据源之间的一座桥梁。它允许你从数据源返回查询的结果,在数据源上执行命令,把数据集中的改变提交到数据源。本文包含
了怎样选择最适合需求的.NET框架组件数据提供程序。
vd;k;l www.it55.com rdfg
使用哪种.NET框架组件数据提供程序
http://www.it55.com/
为了使应用程序获得最佳的性能,需要使用最适合数据源的.NET框架组件数据提供程序。
免费资源www.it55.com
连接到SQL Server 7.0及以上版本 http://www.it55.com/
当连接到SQL Server 7.0及以上版本时,为了获得最佳性能应该使用SQL Server .NET 数据提供程序。SQL Server .NET数据提供程序设计为直接访问SQL Server,没有其它附加的技术层。
www.it55.com在线教程
连接到ODBC数据源
vd;k;l www.it55.com rdfg
名字空间中的ODBC .NET数据提供程序的结构与SQL Server和OLE DB的.NET数据提供程
序相同。ODBC .NET数据提供程序使用"ODBC"前缀和标准的ODBC连接字符串。
注意:ODBC .NET数据提供程序包含在.NET框架组件1.1以上版本,包含ODBC .NET数据
提供程序的名字空间是System.Data.Odbc。
www.it55.com在线教程
使用DataReader、DataSet、DataAdapter和DataView 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn
ADO.NET提供两个对象用于检索关系型数据并把它存储在内存中,分别是DataSet和DataReader。DataSet提供内存中关系数据的表现--包括表和次序、约束等表间的关系的完整数据集合。DataReader提供快速、只向前、只读的来自数据库的数据流。 www.it55.com
使用DataSet时,一般使用DataAdapter(也可能是CommandBuilder)与数据源交互,用DataView对DataSet中的数据进行排序和过滤。DataSet可以被继承来建立强化类型的DataSet,用于暴露表、行、列作为强化类型对象属性。 www.it55.com在线教程
下面的内容包含什么时候使用DataSet或DataReader,以及怎样优化访问它们所包含的数据,也包括怎样优化DataAdapter和DataView的使用(也包括CommandBuilder)。
DataSet与DataReader的对比 www.it55.com
在设计应用程序时,决定使用DataSet还是DataReader需要考虑应用程序需要的功能。 vd;k;l www.it55.com rdfg
使用DataSet是为了实现应用程序的下述功能: vd;k;l www.it55.com rdfg
l 操作结果中的多个分离的表。 sflj www.it55.com kg^&fgd
l 操作来自多个源(例如来自多个数据库、XML文件和电子表格的混合数据)的数据。
www.it55.com
l 在层之间交换数据或使用XML Web服务。与DataReader 不同,DataSet能被传递到远
程客户端。 vd;k;l www.it55.com rdfg
l 通过缓冲重复使用相同的行集合以提高性能(例如排序、搜索或过滤数据)。 www.it55.com
l 每行执行大量的处理。在使用DataReader返回的行上进行扩展处理将使连接存在的
时间比必要的更长,从而降低效率。 www.it55.com在线教程
l 使用XML操作(例如XSLT转换和Xpath查询)维护数据。
免费资源www.it55.com
在应用程序需要以下功能时使用DataReader: www.it55.com
l 不需要缓冲数据。
l 正在处理的结果集太大而不能全部放入内存中。 IT资讯之家 www.it55.com
l 需要迅速一次性访问数据,采用只向前的只读的方式。 http://www.it55.com/
注意:当填充DataSet的时候,DataAdapter使用DataReader。因此使用DataAdapter代
替DataSet获得的性能是节约了DataSet消耗的内存和组装DataSet所需要的周期。这种性能
的提高大部分是有名无实的,因此你应该根据需要的功能为基础来做设计决定。
使用强类型DataSet的好处
使用DataSet的另一个好处是它能被继承用于建立强类型的DataSet。强类型DataSet的
好处包括设计时的检查和强类型DataSet 的Visual Studio .NET语句填充。当你为DataSe
t固定了大纲或关系结构时,就能建立强类型DataSet,把行和列作为对象的属性而不是项
的集合。例如,作为暴露顾客表的某一行的列名的代替,你可以暴露Customer对象的 Nam
e属性。强类型的DataSet衍生自DataSet类,因此不会牺牲DataSet的任何功能,也就是说
,强类型的DataSet也可以是远程的,并作为数据绑定控件(例如DataGrid)的数据源提供
。如果不知道大纲,也能通过使用通常的DataSet获得好处,但是丧失了强类型DataSet的
附加特性。 www.it55.com
在强类型DataSet中处理空值
使用强类型DataSet时,你能给DataSet 的XML大纲定义语言(XSD)作注解以确保强类
型DataSet正确的处理空(Null)的引用。空值(nullValue)注释使你能用String.Empty
这个特定值代替DBNull、保持了空引用、或者产生一个异常。选择其中的哪个依赖于应用
程序的内容,默认情况下遇到空引用将产生一个异常。
刷新DataSet中的数据
免费资源www.it55.com
如果你希望使用更新后的值从服务器刷新数据集中的值,使用DataAdapter.Fill。如
果主键定义在数据表上,DataAdapter.Fill基于主键匹配新行,并把服务器的数据改成已
存在的行。被刷新行的RowState设置为Unchanged,即使在刷新前它被修改过。注意如果给
数据表定义了主键,DataAdapter.Fill添加新行可能重复主键值。 IT资讯之家 www.it55.com
如果希望用服务器的当前值刷新一个表,并且保持表中行的改变,你必须首选使用Da
taAdapter.Fill组合它,填充一个新的数据表,接着将该数据表合并(Merge)进一个数据
集,并把preserveChanges值设为true。 vd;k;l www.it55.com rdfg
在DataSet中搜索数据 http://www.it55.com/
在一个数据集中查询符合特定条件的行时,使用基于索引(index-based)的查看表将
提高性能。给数据表指定主键(PrimaryKey)值时,就建立了一个索引。当为数据表建立
数据视图(DataView)时也建立了索引。下面是一些使用基于索引查看的技巧:
如果查询是在数据表的主键列上进行的,使用DataTable.Rows.Find代替DataTable.S
elect。 sflj www.it55.com kg^&fgd
查询非主键列,可以使用数据视图来提高多个数据查询的速度。当给数据视图添加排
序时,将建立搜索时使用的索引。数据视图暴露了查询下层数据表的Find和FindRows方法
。
如果你不是查询表的排序视图,也可以通过为数据表建立数据视图获得基于索引的查
看表的好处。注意如果你执行数据上的多个查询这是唯一的好处。如果你只执行单个查询
,需要建立索引的过程将因为使用索引而降低了性能。
数据视图(DataView)结构 http://www.it55.com/
当数据视图建立后,并且当Sort、RowFilter或RowStateFilter或者属性被修改时,数
(编辑:IT资讯之家 www.it55.com)