ADO.NET 构造开发内容包括: 更容易的设计集成、扩充的部署选项、更为丰富多彩的登录和个性化服务以及更好的数据访问和同步, 为此我也苦恼很久, 后来终于让我找到了解决办法. ADO.NET 构造使用强类型 DataSet 的好处
ADO.NET 构造的另一个好处是可被继承以创建一个强类型 DataSet. 强类型 DataSet 的好处包括设计时类型检查, 以及 Microsoft Visual Studio.NET 用于强类型 DataSet 语句结束所带来的好处. 修改了 DataSet 的架构或关系结构后, 就可以创建一个强类型 DataSet, 将 行和列作为对象的属性公开, 而不是作为集合中的项公开. 例如, 不公开客户表中行的姓名列, 而公开 Customer 对象的 Name 属性.
类型化 DataSet 从 DataSet 类派生, 因此不会牺牲 DataSet 的任何功能. 也就是说,ADO.NET 构造类型化 DataSet 仍能远程访问, 并作为数据绑定控件 (例如 DataGrid) 的数据源提供. 如果架构事先不可知, 仍能受益于通用 DataSet 的功能, 但却不能受益于强类型 DataSet 的附加功能.
处理强类型 DataSet 中的空引用
使用强类型 DataSet 时, 可以使用 DataSet 的 XML 架构定义语言 (XSD) 架构来确保强类型 DataSet 可以正确处理空引 用.nullValue 标识符使您可用一个指定的值 String.Empty 代替 DBNull、保留空引用或引发异常. 选择哪个选项取决于应用程序的上下 文. 默认情况下,ADO.NET 构造如果遇到空引用, 就会引发异常.
刷新 DataSet 中的数据
如果想用服务器上的更新值刷新 DataSet 中的值, 就使用 DataAdapter.Fill. 如果有在 DataTable 上定义的主键,DataAdapter.Fill 会根据主键进行新行匹配, 并且当更改到现有行时应用服务器上的值. 即使刷新之前修改了这些数据,ADO.NET 构造刷新行的 RowState 仍被设置为 Unchanged. 注意, 如果没有为 DataTable 定义主键,DataAdapter.Fill 就用可能重复的主键值添加新行.
如果想用来自服务器的当前值刷新表, 并同时保留对表中的行所做的任何更改, 必须首先用 DataAdapter.Fill 填充表, 并填充一个新的 DataTable, 然后用 preserveChanges 值 true 将 DataTable 合并到 DataSet 之中.
在 DataSet 中搜索数据
在 DataSet 中查询与特定条件相匹配的行时,ADO.NET 构造可以利用基于索引的查找提高搜索性能. 当将 PrimaryKey 值赋给 DataTable 时, 会创建一个索引. 当给 DataTable 创建 DataView 时, 也会创建一个索引. 下面是一些利用基于索引进行查找的技巧.