If it wasn't enough that .NET was built on a totally new platform, Microsoft went and changed ADO to be totally new also. The new version of ADO called ADO.NET, is functionally very different from the old version. It is totally disconnected and built around object oriented coding concepts giving programmers a very powerful data access platform.
Because of the many changes, I would like to suggest a good book to help you get started with ADO.NET. ADO.NET in a Nutshell, written by Bill Hamilton and Matthew MacDonald, ISBN 0596003617, will help bridge the gap very effectively. It was published by O'Reilly.
I liked the writing style of the book. It is concise and to the point without any fluff. My time is valuable, and I don't want to waste it by reading a bunch of junk to get to the point. The book provides exact to-the-point answers to the questions about ADO.NET. All aspects of the new data access layer are covered, from simple selects, to multiple transactions, to Winforms databinding. The authors also go over how XML is used in ADO.NET and how to take advantage of it.
The second part of the book covers the core classes that make up ADO.NET. It is designed to be a quick reference on each one. The authors did a good job of providing good points about each one and common troubleshooting tips, and not just coping information you can find in the Microsoft documentation.
Section three tells how to use the book more effectively, and demonstrates how to translate the C# samples in the book to VB.NET. A quick reference to the System.Data
namespace is also given. It contains the classes in the namespace and all contained namespaces.
Section four contains information about the different data providers that .NET offers and other facts about ADO.NET. A full index of all properties, types and methods if offered here also. For those not familiar with MSDE, Microsoft's free scaled down instance of SQL Server, should read the information about it here also to get familiar with common SQL Server functionality.
This is another 10 from O'Reilly. I loved the style of the book, straight to the point with relevant information. The quick reference sections are great also. You have all constants, functions, classes, enums etc right in front of you. No searching through MSDN! The authors stuck with one language throughout, C#, which is also a plus. I find it more difficult to read books where the examples are in several different languages.
Table of Contents:
I. ADO.NET Tutorial
- Introduction
- ADO.NET Data Providers
- Connected and Disconnected Data
- .NET Data Providers
- Data Providers
- Selecting a Data Provider
- Creating a Custom Data Provider
- Connections
- Connection Object Overview
- The Connection String
- Opening and Closing Connections
- Connection Pooling
- Commands
- Command Object Overview
- Creating and Executing a Command
- Parameter Object Overview
- Parameterized Commands
- Commands with Stored Procedures
- Commands and Data Definition Language (DDL)
- DataReaders
- DataReader Object Overview
- Performing a Query with a DataReader
- Stored Procedures with the DataReader
- DataReaders and Schema Information
- DataSets
- Creating an Untyped DataSet
- Working with Tables in the DataSet
- Adding and Removing Relations
- Adding Custom Information
- Cloning the Schema
- Copying the DataSet
- Merging Two DataSets
- Removing All Data
- Resetting the DataSet
- Committing and Discarding Changes
- DataTables
- Creating a DataTable
- Working with Columns
- Constraints
- Primary Key
- Rows
- Loading Data
- Committing and Discarding Changes
- Cloning the Schema of the Table
- Copying the Table
- Selecting a Subset of Rows
- Performing Aggregate Calculations
- Removing All Data
- Resetting the Table
- Identifying Errors in the Table
- DataTable Events
- DataColumns
- Creating DataColumns
- Creating AutoIncrement Columns
- Creating Expression Columns
- Handling Null Values
- Mapping .NET Data Provider Types to .NET Framework Types
- DataRows
- Creating a DataRow
- Updating Rows
- Deleting Rows
- Using Row State Information
- Using Row Version Information
- Accepting or Rejecting Changes to Rows
- Navigating Parent and Child Rows
- Using Row Error Information
- Constraints
- Constraint Object Overview
- The UniqueConstraint
- The ForeignKeyConstraint
- DataRelations
- DataRelation Object Overview
- Navigating Relational Data
- DataViews and Data Binding
- The DataView and DataViewManager
- Sorting and Filtering
- Accessing Data Through a DataView
- Windows Data Binding
- ASP.NET Data Binding
- Strongly Typed DataSets
- Creating a Strongly Typed DataSet
- Adding a Row
- Editing a Row
- Finding a Row
- Null Data
- Navigating Hierarchical Data
- Annotations
- DataAdapters
- Creating DataAdapter Object
- Retrieving Data from the Data Source
- Retrieving Schema Information from the Data Source
- Updating the Data Source
- Mapping Tables and Columns
- AcceptChangesDuringFill
- ContinueUpdateOnError
- DataAdapter Events
- Updating the Data Source
- SqlCommandBuilder Class Overview
- Updating a Data Source Using Command Builder
- Updating a Data Source Using Custom Logic
- Refreshing Data After Updating
- Retrieving Updated Values from the Data Source
- Updating Data in Related Tables
- Handling Concurrency Issues
- Optimization
- Transactions
- Manual Transactions
- Isolation Levels
- Savepoints
- Nested Transactions
- Transactions Using a DataAdapter
- Automatic Transactions
- XML and the DataSet
- DataSet XML Methods
- Shaping DataSet XML
- Other .NET XML Classes
- XmlDataDocument Object Overview
- Using the Data Objects to Edit XML
- SQL Server 2000 XML
II. ADO.NET Core Classes
- The Connection Class
- Comments/Troubleshooting
- Properties Reference
- Methods Reference
- Events Reference
- The Command Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- Methods Reference
- The Parameter Class
- Comments/Troubleshooting
- Properties Reference
- The DataReader Class
- Comments/Troubleshooting
- Properties Reference
- Methods Reference
- The DataSet Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- Methods Reference
- Events Reference
- The DataTable Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- Methods Reference
- Events Reference
- The DataColumn Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- The DataRow Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- Methods Reference
- The Constraint Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- The DataRelation Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- The DataView Class
- Comments/Troubleshooting
- Properties Reference
- Methods Reference
- Events Reference
- The DataAdapter Class
- Comments/Troubleshooting
- Properties Reference
- Collections Reference
- Methods Reference
- Events Reference
- The CommandBuilder Class
- Comments/Troubleshooting
- Properties Reference
- Methods Reference
- The Transaction Class
- Comments/Troubleshooting
- Properties Reference
- Methods Reference
III. API Quick Reference
- How to Use This Quick Reference
- Finding a Quick-Reference Entry
- Reading a Quick-Reference Entry
- Converting from C# to VB Syntax
- General Considerations
- Classes
- Structures
- Interfaces
- Class, Structure, and Interface Members
- Delegates
- Enumerations
- The System.Data Namespace
- The System.Data.Common Namespace
- The System.Data.SqlClient Namespace
- The System.Data.OleDb Namespace
- The System.Data.SqlTypes Namespace
- ADO.NET Providers
- ADO.NET XML Extensions
- Microsoft Data Engine (MSDE)
- Type, Method, Property, and Field Index
Order your copy of ADO.NET in a Nutshell at Amazon.com.