使用datareader可以在你的应用程序中做以下事情:
i.不需要缓存数据;
ii.处理太大而不能存储的数据;
iii.需要以只进、只读和快速方式一次性访问数据的。
g.使用一个自定义的强有力的dataset类型的好处
通过创建一个继承于dataset的子对象,你可以在运行期间执行类型检查和声明。当你有了一个确定的计划或者为你的dataset有相关的结构,你就可以创建一个用行和列表述一个对象的dataset。比如,你表露一个消费者对象的名字属性来取代表露消费者表的一行中的名字列。有关此节详细信息,请参考微软站点上的文章:working with a typed dataset
h.在自定义的dataset中处理无效数据
通过xsd语言检查你的dataset确保你的dataset适当地处理无效引用。nullvalue注释使你把bbnull替换成别的字符,string.empty;或者保留无效引用,抛出错误提示,提示将取决于你应用程序的上下文,默认情况是引用了无效字符。
i.在dataset中刷新数据
如果你要从数据库刷新你的dataset,使用dataadapter.fill,如果你的datatable拥有主键,dataadapter.fill将根据主键匹配新的行,同时从数据库取值运用到已存在的行。除非已刷新行在再次刷新前被修改,否者它的rowstate将会被设置为unchanged。注意的是如果datatable没有设置主键,你的dataset有可能出现重复的值。如果你想从数据库刷新一个表并保留任何表中行的更改,那么你就要首先填充一个新表,然后利用preservechanges等于true来合并那个datatable到你的dataset中去。
j.在dataset中搜索数据
当你在一个dataset中查询特殊标准的行时,利用索引查询将会增加你的查询性能。当你给一个datatable设计主键时,索引同时也创建了。当你为一个datatable创建dataview时,索引也同时创建了。以下是使用索引查询的一些情况:
i.如果查询与datatable中标识主键的列顺序相反,使用datatable.rows.find代替datatable.select;