一、思维导图
二、重要内容
-
Connection 类
和数据库交互,必须连接它。连接帮助指明数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。Connection对象会被Command对象使用,这样就能够知道是在哪个数据源上面执行命令。
-
Command对象
成功与数据建立连接后,就可以用Command对象来执行查询、修改、插入、删除等命令;
Command对象常用的方法有ExecuteReader()方 法、ExecuteScalar()方法和ExecuteNonQuery()方法;
插入数据可用ExecuteNonQuery()方法来执行插入命 令。
-
DataReader类
许多数据操作要求开发人员只是读取一串数据。DataReader对象允许开发人员获得从Command对象的SELECT语句得到的结果。考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的数据流。这意味着开发人员只能按照一定的顺序从数据流中取出数据。这对于速度来说是有好处的,但是如果开发人员需要操作数据,更好的办法是使用DataSet。
-
DataAdapter类
某些时候开发人员使用的数据主要是只读的,并且开发人员很少需要将其改变至底层的数据源。同样一些情况要求在内存中缓存数据,以此来减少并不改变的数据被数据库调用的次数。DataAdapter通过断开模型来帮助开发人员方便的完成对以上情况的处理。当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候,DataAdapter填充(fill)DataSet对象。DataAadapter包含对连接对象以及当对数据库进行读取或者写入的时候 自动的打开或者关闭连接的引用。另外,DataAdapter包含对数据的SELECT、INSERT、UPDATE和DELETE操作的 Command 对象引用。开发人员将为DataSet中的每一个Table都定义DataAadapter,它将为开发人员照顾所有与数据库的连接。所以开发人员将做的工作是告诉DataAdapter什么时候装载或者写入到数据库。
它的主要成员是DataSet和DataTable,其他成员可以简单理解成这两个类的组成类。下面主要介绍DataSet和DataTable。
-
DataSet对象
DataSet 对象是数据在内存中的表示形式。它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表。开发人员甚至能够定义 表之间的关系来创建主从关系。DataSet是在特定的场景下使用,帮助管理内存中的数据并支持对数据的断开操作的。DataSet是被所有DataProviders使用的对象,因此它并不像Data Provider一样需要特别的前缀
-
DataTable类
DataTable与数据库中的table很相似,你几乎完全可以按照数据库中的table来理解DataTable,包括行和列等等。反正你就按照table来理解它就对了。最后,简单说一下这些对喜爱对象之间的关系。Connection 对象提供数据来源的连接。Command 对象可让开发 人员 存取操作数据库的命令,以便传回数据、修改数据、执行预存程序 (Stored Procedure),并且传送参数信息。DataReader则可提供来自数据来源的高效能数据流。最后,DataAdapter会提供 DataSet 对象与数据来源之间的桥接器 (Bridge)。DataAdapter 会使用 Command 对象,在数据来源处执行 SQL 命令,以便将数据载入 DataSet,并且也能将 DataSet 内的数据变更更新到数据库。