第1个回答 2009-07-08
DataSet可以理解是一个特定容器,容器就是用来装东西,特定就是他只能装DataTable,一个DataSet可以放一个或多个DataTable,通过名字或索引值可以访问这些Table。
DataAdapter是一个搬运工,活动与数据库和应用程序之间,在应用程序这边向DataAdapter指定要查询的信息(这些信息其实被封装到其他的类,比方说Command,Connection),它就可以按照这些信息对数据进行操作。如果操作类型是检索数据,他就可以把数据添加到DataSet中在返回应用程序这一端。
DataReader是对数据库检索操作的一种方式,在向数据库检索过程中它是不断的把数据一点一点的不间断的传回应用程序。这可以和DataAdapter形成对比,DataAdapter是在数据库端检索形成N个Table放到DataSet中,然后将DataSet传回到应用层,这样数据表的映像就在应用端的内存中,可在需要时直接取。而DataReader没有形成表的映射,这样,下次还想取相同的数据,只能再连一次数据库。于是有人称DataSet的方式是基于非连接方式,而DataReader是基于连接。
当然DataSet还有记录更新等等功能,也不是一句两句能说清楚。以后慢慢体会吧。
第2个回答 2009-07-09
DataSet 数据集,相当于一个临时数据库,可以存放多张数据表,可以在数据库连接断开的情况下操作数据,必须靠DataAdapter对象的Fill()方法来填充数据.
DataAdapter 数据适配器,用来执行SQL语句,然后将查询到的数据填充到DataSet.
DataReader 数据读取器,返回值类型为Object类型,只能执行查询语句,将查询到的数据使用循环语句一行一行读出,只能通过Command对象的ExecuteReader()方法来创建。
第3个回答 2009-07-09
DataSet内包含一堆表(DataTable)
DataAaapter负责执行sql或存储过程,将得到的表装入DataSet,
DataReader也是装载数据表的容器,好处是不像DataSet那样缓存数据,用它速度更快