+ All Categories
Home > Documents > An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Date post: 04-Jan-2016
Category:
Upload: ashlie-blake
View: 219 times
Download: 3 times
Share this document with a friend
37
An Introduction to ADO.Net Marmagna Desai .NET Seminar, Fall-2003
Transcript
Page 1: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

An Introduction to ADO.Net

Marmagna Desai.NET Seminar, Fall-2003

Page 2: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Contents

• What is ADO.Net?• What happened to ADO?• The ADO.Net object structure• Connecting• Commanding• Readers and DataSets

Page 3: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

What is ADO.Net?

• The data access classes for the .Net framework

• Designed for highly efficient data access

• Support for XML and disconnected record sets

Page 4: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

And the .Net framework?

• A standard cross language interface

• Encapsulation of services, classes and data types

• Uses XML for data representation

Page 5: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Where does ADO sit?V

isual S

tud

io .N

ET

VB C# C++ Jscript …

Common Language Specification

ASP.Net Windows Forms

ADO.Net XML.Net

Base Class Library

Common Language Runtime (CLR)

Windows COM+ Services

Page 6: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

What happened to ADO?

• ADO still exists.• ADO is tightly coupled to client

server architectures• Needs COM marshalling to pass

data between tiers• Connections and locks are typically

persisted

Page 7: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

ADO / ADO.Net ComparisonsFeature ADO ADO.Net

In memory data storage

Recordset objectMimics single table

Dataset objectContains DataTables

Data Reads Sequential Sequential or non-sequential

Data Sources

OLE/DB via the Connection object

Managed provider calls the SQL APIs

Page 8: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

ADO / ADO.Net ComparisonsFeature ADO ADO.Net

Disconnected data

Limited support, suitable for R/O

Strong support, with updating

Passing datasets

COM marshalling DataSet support for XML passing

Scalability Limited Disconnected access provides scalability

Page 9: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Client

SQL .NET

Data Provider

OLE DB .NET Data Provider

ODBC .NET Data Provider

OLE DB Provider

ODBC Driver

SQL SERVER

Other DB

Other DB

.NET Data Providers.NET Data Providers

Page 10: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Rows

DataSet

.Net Data ProviderClient

Connection Command

databaseDataAdapter

DataReader

Data Provider Functionality

Page 11: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

ADO.Net object modelDataAdapter

Command

DataSet

Errors Collection

Connection Parameters

Data Source

Fill

Update

Sele

ctC

om

mand

Inse

rtC

om

man

d

Upd

ate

Com

mand

Dele

teC

om

man

d

Page 12: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Namespaces

• System.Data & System.Data.Common

• System.Data.SqlClient &System.Data.OleDB

• System.Data.SqlTypes• System.XML &

System.XML.Schema

Page 13: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Using Namespaces

• VB.NetImports System.DataImports System.Data.SqlClientDim sqlAdp as SqlDataAdapter

• C#using System.Data;using System.Data.SqlClient;SqlDataAdapter sqlAdp= new SqlDataAdapter();

Page 14: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

SQL Namespace Objects

• using System.Data.SqlClient;• SqlConnectionSqlConnection• SqlCommandSqlCommand• SqlDataReaderSqlDataReader• SqlDataAdapterSqlDataAdapter• SqlParameter• SqlParameterCollection• SqlError• SqlErrorCollection• SqlException• SqlTransaction• SqlDbType

Page 15: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Connecting to SQL

• using System.Data.SqlClient;

string sConnectionString = "Initial Catalog=Northwind; Data Source=localhost; Integrated Security=SSPI;";

SqlDataAdapter sqlAdp= new SqlDataAdapter(sConnectionString);

sqlAdp.Close();sqlAdp.Dispose();

Page 16: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Connection Pooling

• ADO.Net pools connections.When you close a connection it is released back into a pool.

• SqlConnection conn = new SqlConnection();conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";conn.Open(); // Pool A is created.

• SqlConnection conn = new SqlConnection();conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=pubs";conn.Open(); // Pool B is created because the connection strings differ.

• SqlConnection conn = new SqlConnection();conn.ConnectionString = "Integrated Security=SSPI;Initial Catalog=northwind";conn.Open(); // The connection string matches pool A.

Page 17: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Getting data

• SqlCommandExecuteReaderExecuteNonQueryExecuteScalarExecuteXMLReader

• SqlDataAdapterDataSet

Page 18: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Using the command object

• SqlCommandMultiple constructors

• New()• New(cmdText)• New(cmdText, connection)• New(cmdText, connection, transaction)

Page 19: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Using the command object• string sSelectQuery =

"SELECT * FROM Categories ORDER BY CategoryID";string sConnectionString = "Initial Catalog=Northwind; Data Source=localhost; Integrated Security=SSPI;";SqlConnection objConnect = new SqlConnection(sConnectString);SqlCommand objCommand = new SqlCommand(sSelectQuery, objConnect);/*

• objCommand.CommandTimeout = 15;objCommand.CommandType = CommandType.Text;

• */

objConnect.Open();

SqlDataReader drResults;drResults = objCommand.ExecuteReader()

drResults.Close();objConnect.Dispose();

Page 20: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Command Methods

• .ExecuteReader() - Returns DataReader

• .ExecuteNonQuery() - Returns # of Rows Affected

• .ExecuteXMLReader() - Returns XMLReader Object to Read XML documentation

• .ExecuteScaler() - Returns a Single Value e.g. SQL SUM function.

Page 21: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

The DataReader object

• DataReader objects are highly optimised for fast, forward only enumeration of data from a data command

• A DataReader is not disconnected

Page 22: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

The DataReader object

• Access to data is on a per record basis.

• Forward only• Read only• Does support multiple recordsets

Page 23: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Creating a data reader

SqlDataReader sqlReader; sqlReader = sqlCommand.ExecuteReader();

while (sqlReader.Read()) { // process, sqlReader("field")}sqlReader.Dispose();

Page 24: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Other Methods

• GetString(), GetInt() etc.• GetSqlString(), GetSqlInt32() etc.• GetValues()• IsDBNull()• GetSchemaTable()

Page 25: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataSets

• In-memory representation of data contained in a database/XML

• Operations are performed on the DataSet, not the data source

• Can be created programmatically, using a DataAdapter or XML schema and document (or any mixture)

Page 26: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Creating DataSets

• Setup SqlConnection• Setup a SqlDataAdapter• Create a DataSet• Call the .Fill() method on the DA

Page 27: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataAdapters

• Pipeline between DataSets and data sources

• Geared towards functionality rather than speed

• Disconnected by design• Supports select, insert, delete,

update commands and methods

Page 28: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataAdapters

• Must always specify a select command

• All other commands can be generated or specified

Page 29: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Using the DataAdapter

SQLDataAdapter sqlDA = new SqlDataAdapter();

sqlDA.SelectCommand =new SqlCommand ("select * from authors“, sqlConnection);

DataSet sqlDS = new DataSet("authorsTable");

sqlDA.Fill(sqlDS, "authorsTable");

Page 30: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataAdapters

• For speed and efficiency you should set your own InsertCommand, UpdateCommand and DeleteCommand

• Call GetChanges to seperates the updates, adds and deletes since the last sync. Then sync each type.

Page 31: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataTables

• A DataSet contains one or more DataTables.

• Fields are held within the DataTable.

• And in DataRows, DataColumns.

Page 32: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Sets, Tables and Rows

DataSet

DataTable

DataTableDataRowDataRow

Page 33: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Using DataTables

With a DataTable we can• Insert, modify and update• Search• Apply views• Compare• Clear• Clone and Copy

Page 34: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataRelations

• New to ADO.Net• Tables within a DataSet can now

have relationships, with integrity.• Supports cascading updates and

deletes.

Page 35: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

DataViews

• Like a SQL view• Single, or multiple tables• Normally used with GUI

applications via Data Binding.

Page 36: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

References

• ADO.Net Programmer’s ReferenceBilbija, Dickenson et al.Wrox Press

• http://oberon.idunno.org/sql/• My email :

[email protected]

Page 37: An Introduction to ADO.Net Marmagna Desai.NET Seminar, Fall-2003.

Thank You!!

-Marmagna Desai


Recommended