Learn to use the ADO.NET DataReader class
Learn to create a function to return a DataSet, given a SQL string
Learn to set relationships between DataTables
Once you've managed to connect to a data source and retrieve data (see Chapter 13, "ADO.NET Connection and Command Objects"), you'll need to work with the data. ADO.NET provides two completely separate sets of objects for manipulating data. The Connection and Command objects you've already seen must be aware of the specific data source in order to do their work, and the same applies to the DataAdapter object you'll learn about in this chapter. Other objects, such as the DataSet, DataTable, DataView, and DataRow objects, work in a disconnected manner once you've loaded them with data, they don't know or care where the data originated.
In this chapter, you'll learn to work with both types of objects. You'll fill disconnected DataSet objects with data, and you'll work with DataTable objects within DataSets. To get started, you'll work with a connected data access object: the DataReader.