回顾
ADO.NET有两个核心组件:基于连接的Data Provider组件以及基于非连接的DataSet组件。基于连接的Data Provider组件常用于实时地从数据库中检索数据。而基于非连接的DataSet,似乎与数据库没有直接联系,仅仅用于在本地内存中存储Data Provider提供的数据表或集合。
DataAdapter作用
前面我所讲的对象中,如Connection对象,Command对象以及DataReader对象,这些对象均属于Data Provider的一部分,而且都是基于连接的。
如果,每次我们检索数据库中的表或者行都需要连接一次数据库,那么性能和效率是十分低下的。ADO.NET提供了基于非连接的核心组件:DataSet。
DataSet组件是一个内存中的数据容器(如果C/S模式的话则DataSet对象就在客户主机的内存中),让我们可以很愉快地在内存中操作以表为中心的数据集合,就好比操作数据库中的表一样,我们可以在本地内存中随意修改,之后再统一提交回数据库。这样就实现了数据库的离线操作。。
既然DataSet是基于非连接的(不需要连接数据库),那么它存储的数据集合是从哪里来呢?
答:ADO.NET为DataSet准备一个的中介:DataApdater(数据适配器),将从外部数据源检索到的数据合理正确的调配到本地的DataSet集合中。
支持的数据源,如下:
◆对于所连接的是 SQL Server 数据库,则可以通过将 SqlDataAdapter 与关联的 SqlCommand 和 SqlConnection 对象一起使用,从而提高总体性能。
◆对于支持 OLE DB 的数据源,请使用 DataAdapter 及其关联的 OleDbCommand 和 OleDbConnection 对象。
◆对于支持 ODBC 的数据源,请使用 DataAdapter 及其关联的 OdbcCommand 和 OdbcConnection 对象。
◆对于所连接的是 Oracle 数据库,请使用 DataAdapter 及其关联的 OracleCommand 和 OracleConnection 对象。