Agenda
Introduce you to ADO.NET Describe the connected layer of ADO.NET as implemented by .NET data providers Describe the disconnected layer of ADO.NET as implemented by the DataSet Demonstrate integration of ADO.NET within Visual Studio
Why ADO.NET?
ADO works great, but
ADO.NET solves these problems
Requires COM and Windows® Recordsets don’t travel well across the Internet Connected behavior is hard to work with Uses XML under the covers for all data transport XML has no runtime/transport requirements No special code required to marshal across the Internet
ADO.NET requires new mindset
All data access disconnected All data transport uses XML
What Is ADO .NET?
ADO.NET is a collection of classes, interfaces, structures, and enumerated types that manage data access from relational data stores within the .NET Framework
These collections are organized into namespaces: System.Data, System.Data.OleDb, System.Data.SqlClient, etc.
ADO.NET is an evolution from ADO.
Does not share the same object model, but shares many of the same paradigms and functionality!
Connected Or Disconnected? System.Data
namespace contains disconnected set of objects DataSet,
DataTable, DataRow, and so on
Specific
namespaces (System.Data.OleDb and System.Data.SqlClient) contain connected objects SqlDataAdapter/OleDbDataAdapter SqlConnection/OleDbConnection SqlDataReader/OleDbDataReader
Connected Or Disconnected?
With ADO, a fundamental question is: Where is the data managed? On the client? On the server? A mixture of the two?
The answer in ADO …it depends on the cursor you are using. With ADO.NET:
Data is always on the client (via DataSet)
ADO.NET Architecture Presentation Tier Windows Forms MyApp.Exe
DataSet
Internet Intranet
Web Forms IE
DataSet
Business to Business
(BizTalk, for example)
XML
Business Tier
Data Tier
Data Object (Class) DataSet
Data Adapter Data Adapter
ADO.NET ODBC
ODBC Driver
ODBC RDBMS
OLE DB Provider
Application
Connection
OLE DB
.NET Data Provider
OLE DB RDBMS
Command
Data Reader
Data Adapter
SQL Server
ADO.NET Objects
Connection
Command
Executes SELECT, INSERT, UPDATE and DELETE commands
Data Reader
Connects to data source
Forward-only, read-only stream of data
Data Adapter
Connects a DataSet to a data source
Working With Data
If you need full data access, use DataAdapter object (SQLDataAdapter, OleDbDataAdapter) DataAdapter represents a set of data commands and a database connection
Fills a DataSet (using Fill method) Updates data (using Update method)
Working With Data
Use Fill method to fill the DataSet
DataSet provides local cache for disconnected data All data marshaled as XML
Make changes in cached data Use Update method to write changes from cached data back to data source
Getting Data Into A DataSet
DataAdapter has four Command properties
DataAdapter uses these Command objects for selecting, updating, and so on
SelectCommand/DeleteCommand InsertCommand/UpdateCommand Each property contains a Command object
Call the Update method to change data
Call the Fill method to execute the SelectCommand
Fills a DataSet
DataSet Object
Relational views of data
Contains tables, columns, rows, constraints, views, and relations
Disconnected model
Has no knowledge of data source Array-like indexing Strong typing Supports data binding
DataSet Tables Table Columns Column Constraints Constraint
Rows Row Relations Relation
Summary
ADO.NET provides a rich API for working with data ADO.NET has been designed to support legacy architectures as well as Internet-enabled, n-tier designs The .NET Framework’s extensive XML support means greater reach for all of your data-enabled applications