ADO.NET is an evolution of the ADO data access model that
directly addresses user requirements for developing scalable
applications. It was designed specifically for the web with
scalability, statelessness, and XML in mind. ADO.NET uses some
ADO objects, such as the Connection and Command objects, and
also introduces new objects. Key new ADO.NET objects include the
DataSet, DataReader, and DataAdapter. The important distinction
between this evolved stage of ADO.NET and previous data
architectures is that there exists an object -- the DataSet --
that is separate and distinct from any data stores. Because of
that, the DataSet functions as a standalone entity. You can
think of the DataSet as an always disconnected recordset that
knows nothing about the source or destination of the data it
contains. Inside a DataSet, much like in a database, there are
tables, columns, relationships, constraints, views, and so
forth. A DataAdapter is the object that connects to the database
to fill the DataSet. Then, it connects b