CHAPTER 22 ADO.NET PART II: THE DISCONNECTED LAYER
Source Code You can find the updated InventoryDALDisconnectedGUI project under the Chapter 22
subdirectory.
Multitabled DataSet Objects and Data Relationships
So far, all of this chapter’s examples have operated on a single DataTable object. However, the power of
the disconnected layer shines through when a DataSet object contains numerous interrelated
DataTables. In this case, you can define any number of DataRelation objects in the DataSet’s
DataRelation collection to account for the interdependencies of the tables. The client tier can use these
objects to navigate between the table data without incurring network round trips.
Note Rather than updating AutoLotDAL.dll to account for the Customers and Orders tables, this example
isolates all of the data access logic within a new Windows Forms project. However, intermixing UI and data logic in
a production-level application is not recommended. The final examples of this chapter leverage various database
design tools to decouple the UI logic from the data logic code.
Begin this example by creating a new Windows Forms application named MultitabledDataSetApp.
The GUI is simple enough (note I changed the name of my initial Form1.cs file to MainForm.cs). In Figure
22-11, you can see three DataGridView widgets (dataGridViewInventory, dataGridViewCustomers, and
dataGridViewOrders) that hold the data retrieved from the Inventory, Customers, and Orders tables of the
AutoLot database. In addition, the initial Button (named btnUpdateDatabase) submits any and all changes
entered within the grids back to the database for processing using data adapter objects.
896