ADO.NET DataSet使用四个技巧总结

开发 后端
这里究ADO.NET DataSet使用强类型的好处、处理强类型的空引用、刷新数据、搜索数据四个方面作出了全面的分析,希望对大家有用。

运用ADO.NET的朋友对DataSet肯定不陌生,它是ADO.NET的一个对象,今天究ADO.NET DataSet使用来和大家详细的谈谈。

1.ADO.NET DataSet使用强类型的好处

DataSet 的另一个好处是可被继承以创建一个强类型 DataSet。强类型 DataSet 的好处包括设计时类型检查,以及 Microsoft Visual Studio .NET 用于强类型 DataSet 语句结束所带来的好处。修改了 DataSet 的架构或关系结构后,就可以创建一个强类型 DataSet,把行和列作为对象的属性公开,而不是作为集合中的项公开。例如,不公开客户表中行的姓名列,而公开 Customer 对象的 Name 属性。类型化 DataSet 从 DataSet 类派生,因此不会牺牲 DataSet 的任何功能。也就是说,类型化 DataSet 仍能远程访问,并作为数据绑定控件(例如 DataGrid)的数据源提供。如果架构事先不可知,仍能受益于通用 DataSet 的功能,但却不能受益于强类型 DataSet 的附加功能。

2.ADO.NET DataSet使用中处理强类型的空引用

使用强类型 DataSet 时,可以批注 DataSet 的 XML 架构定义语言 (XSD) 架构,以确保强类型 DataSet 正确处理空引用。nullValue 批注使您可用一个指定的值 String.Empty 代替 DBNull、保留空引用或引发异常。选择哪个选项取决于应用程序的上下文。默认情况下,如果遇到空引用,就会引发异常。

有关更多信息,请参阅 Working with a Typed DataSet。

3.ADO.NET DataSet使用刷新数据

如果想用服务器上的更新值刷新 DataSet 中的值,就使用 DataAdapter.Fill。如果有在 DataTable 上定义的主键,DataAdapter.Fill 会根据主键进行新行匹配,并且当更改到现有行时应用服务器上的值。即使刷新之前修改了它们,刷新行的 RowState 仍被设置为 Unchanged。注意,如果没有为 DataTable 定义主键,DataAdapter.Fill 就用可能重复的主键值添加新行。

如果想用来自服务器的当前值刷新表,并同时保留对表中的行所做的任何更改,必须首先用 DataAdapter.Fill 填充表,并填充一个新的 DataTable,然后用 preserveChanges 值 true 把 DataTableMerge 到 DataSet 中。

4.在 DataSet 中搜索数据

在 DataSet 中查询与特定条件相匹配的行时,可以利用基于索引的查找提高搜索性能。当把 PrimaryKey 值赋给 DataTable 时,会创建一个索引。当给 DataTable 创建 DataView 时,也会创建一个索引。下面是一些利用基于索引进行查找的技巧。

◆如果对组成 DataTable 的 PrimaryKey的列进行查询,要使用 DataTable.Rows.Find 而不是 DataTable.Select。
◆对于涉及到非主键列的查询,可以使用 DataView 为数据的多个查询提高性能。当把排序顺序应用到 DataView 时,就会建立一个搜索时使用的索引。DataView 公开 Find 和 FindRows 方法,以便查询基础 DataTable 中的数据。
◆如果不需要表的排序视图,仍可以通过为 DataTable 创建 DataView 来利用基于索引的查找。注意,只有对数据执行多个查询操作时,这样才会带来好处。如果只执行单一查询,创建索引所需要的处理就会降低使用索引所带来的性能提升。

【编辑推荐】

  1. LINQ to SQL查询分析
  2. LINQ查询架构简单介绍
  3. LINQ to SQL映射关系概述
  4. LINQ To SQL对象模型浅析
  5. LINQ to SQL映射列描述
责任编辑:田树 来源: 博客
相关推荐

2009-11-04 16:55:16

ADO.NET Dat

2009-10-29 11:08:20

ADO.NET Dat

2009-11-04 11:40:38

ADO.NET Dat

2009-12-22 16:35:11

ADO.NET控件

2009-10-29 10:34:31

ADO.NET使用技巧

2009-11-13 09:24:17

2009-10-29 08:51:24

ADO.NET结构

2009-12-21 14:39:09

ADO.NET技巧

2009-11-12 12:39:16

ADO.NET Sta

2009-12-28 15:46:22

ADO.NET操作

2009-11-03 17:25:59

ADO.NET编程技巧

2009-11-11 14:27:32

ADO.NET函数

2009-12-23 17:30:54

ADO.NET应用程序

2009-10-29 13:34:01

ADO.NET对象

2009-12-28 15:11:36

ADO.NET专家

2009-12-31 11:11:42

ADO.NET组件

2009-12-22 09:50:23

ADO.NET学习

2009-12-29 14:55:31

ADO.NET Dat

2009-12-21 13:19:34

ADO.NET组件

2009-12-21 15:58:19

ADO.NET集合
点赞
收藏

51CTO技术栈公众号