名词解释:Connection,Command,DataReader,DataSet,DataAdapter,Dataview
Posted on 2009-09-07 16:07 Jester Zhu 阅读(1145) 评论(1) 编辑 收藏 举报
一、Connection Connection对象就是用来建立数据库的连接。在与数据库连接的时候,需要向数据库提供一些必要信息,这些信息构成Connection对象的属性,也是该对象实例化时的参数,如数据库地址、数据库名称、用户名、密码等相关信息。 二、Command Command对象就是用来执行数据库操作命令的。比如对数据库中数据表的添加删除,记录的增加删除,或是记录的更新等等都是要通过Command对象 来实现的。一个数据库操作命令可以用SQL语句来表达,包括选择查询(SELECT语句)来返回记录集合,执行更新查询(UPDATE语句)来执行更新记 录,执行删除查询(DELETE语句)来删除记录等等。Command命令也可以传递参数并返回值,同时Command命令也可以被明确的地定界,或调用 数据库中的存储过程。 三、DataReader DataReader 对象从数据库中检索只读、只进的数据流。查询结果在查询执行时返回,在并存储在客户端的网络缓冲区中,直到使用 DataReader 的 Read 方法对它们发出请求。使用 DataReader 可以提高应用程序的性能,因为一旦数据可用,DataReader 方法就立即检索该数据,而不是等待返回查询的全部结果;并且在默认情况下,该方法一次只在内存中存储一行,从而降低了系统开销。因此,在普通的Web程序 里,DataReader对象是个比较招人喜欢的对象。当用户的对数据的需求为下列三种情况的时候,推荐使用DataReader对象: (1)、数据必须是新的――这个要求必须是即时读取数据库记录,而DataReader对象的实例化不会消耗很多内存; (2)、数据需求简单―一般使用手写代码,或是绑定到简单的数据控件上,执行命令为手写的SQL语句或是存储过程,在这种情况下DataReader将提供有效的访问数据方法; (3)、数据操作倾向于向前的只读的操作――没有往返的交互操作。 四、DataSet DataSet对象是ADO.NET的核心,基于DataSet的数据模型才使得ADO.NET实现离线式数据操作模型。DataSet是存在于内存中 的数据库,是专门用来处理数据保存体中读出的数据。它的优点就是离线式的,一点读取到数据源中的数据后,就在内存中建立数据库的副本,在此之后的操作,直 到执行更新命令为止,所有的操作都是在内存中完成的。不管底层的数据库是哪种形式,DataSet的行为都是一致。 ADO.NET的DataSet数据模型 因为DataSet可以看做是内存中的数据库,也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable),而且每一 DataSet中的数据表(DataTable对应一个数据源中的数据表(Table)或是数据视图(View)。数据表实质是又行(DataRow)和 列(DataColumn)组成的集合为了保护内存中数据记录的正确性,避免并发访问时的读写冲突,DataSet对象中的DataTable负着维护每 一条记录,分别保存记录的初始状态和当前状态。从这里可以看出DataSet是与只能存放单张数据表的Recordset是截然不同的概念。 DataSet对象的结构模型如下图所示: 通过上图的分析可知,DataSet对象结构还是非常复杂的,在DataSet对象的下一层中是DataTableCollection对象、 DataRelationCollection对象和ExtendedProperties对象。上文已经说过,每一个DataSet对象是由若干个 DataTable对象组成。DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个 DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable 中的行与另一个DataTable中的行相关联。这种关联类似于关系数据库中数据表之间的主键列和外键列之间的关联。 DataRelationCollection对象就是管理DataSet中所有DataTable之间的DataRelation关系的。在 DataSet中DataSet、DataTable和DataColumn都具有ExtendedProperties属性。 ExtendedProperties其实是一个属性集(PropertyCollection),用以存放各种自定义数据,如生成数据集的SELECT 语句等。 |