Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Overview of ADO.NET
with the .NET Framework
.NET Experiences
ASP.NET – www.asp.net
AspAdvice – www.aspadvice.com
Windows Forms – www.windowsforms.net
Architecture –
msdn.microsoft.com/architecture
.NET News – www.dotnetwire.com
Agenda
Design Philosophy
Architectural Overview
Features
When to use What (Code Examples)
Summary
Design Philosophy
Unified Data Story (data, xml, cache objects)
Datais Data; object model is choice
XML objects feel like XML, Data objects feel like Data,
Typed Objects feel like objects
Factored components
Explicitmodel; no black boxes! (Customers/helper
code wires together components)
Predictable behaviour, semantics
Optimized performance
Disconnected Relational DataSet
Get Data as fast as possible
Managed Data Overview
What Happened
to My RecordSet?
RecordSet
Updateable? Scrollable? Bookmarks? Rowcount?
Holding server resources? Cache on client?
DataReader
Connected, non-cached, FO/RO RecordSet
DataSet
Disconnected, cached, scrollable data
DataAdapter
Logicfor populating the DataSet and propagating
changes back to the datasource
Managed Providers
Manages interaction to a data source
Managed equivalent of OLE DB layer
Directly exposes consumer interfaces
Not a full featured data store interface
Specific to (Optimized for) DataSource
Managed Provider Object Model
Connection
Like ADODB.Connection
Command
Like ADODB.Command
DataReader
Similar to FO/RO ADODB.RecordSet
Fields accessed through strongly typed, indexed accessors
Database Support
System.Data.SQLClient
SQL Server 7
SQL Server 2000
Oracle.DataAccess (ODP.NET).
System.Data.Oracle (MS).
DB2 (only supports .NET 1.0).
MySql.
System.Data.OleDb
System.Data.Odbc ODBC drivers.
Oracle Managed Providers
DataSet
Tables
Relational View Table
Columns
of Data Column
Constraints
Tables, Columns, Constraint
Rows
Rows, Constraints, Row
Relations
Relations Relation
‘Retrieve Results
while(dr.Read())
Console.WriteLine("Name = " + dr("au_lname“))
End while
dr.Close()
OleDbCn.Close() ‘This is VERY IMPORTANT
Disconnected Data Access
Disconnected Data Access - DataSet
Application Data
Remoting Results
SOAP, WebMethods, Remoting
Caching Results
ASP.NET Cache
Persisting results
Save Data as XML, Schema as XSD
User interaction
Scrolling, sorting, filtering
DataView, DataViewManager
Binding Windows controls
Code: Application Data
‘Change LastName
Dr("LastName“) = "Smith"
‘Update DataBase
Dim OleDbCb as new OleDbCommandBuilder =
OleDbCommandBuilder(da)
Code: Client Cursor Operations (harder)
‘Populate DataSet
Dim OleDbDA as new OleDbDataAdapter(
"Select customerId, customerName from
customers“, OleDbCn);
Dim ds as new Dataset()
Dim dr as DataRow
OleDbDA.Fill(ds, "Customer")
OleDbDA.InsertCommand = new
OleDbCommand(“insert into customers
(CustomerName) values (@CustomerName)”,
OleDbCn)
dr = ds.Tables(“Customer”).NewRow()
‘Add Customer Name
Dr("Customer Name“) = "Fred's Company"
‘Update DataBase
Notes on the Client Cursor Update
Works.
Cancontinue to use it.
Required for ADOX support.
Summary
ADO.NET is…
Optimized for Data Access.
Managed Providers for connected
access
DataSet for disconnected, user
interaction
DataReader for connected RO use.
Open Architecture
No Black Boxes
Tightly Integrated with XML
DataSet reads/writes XML
XmlDataDocument integrates relational
and XML views
Scalable Development, Inc.
Building systems today that perform tomorrow.
Questions?
END