ADO Net
ADO Net
ADO Net
ADO.Net
Contents
• What is ADO.Net?
• What happened to ADO?
• The ADO.Net object structure
• Connecting
• Commanding
• Readers and DataSets
What is ADO.Net?
ADO.Net XML.Net
SQL .NET
Data Provider
SQL SERVER
OLE DB .NET
Client Data Provider
OLE DB
Other DB
Provider
Connection Command
Rows
DataReader
DataSet
DataAdapter database
ADO.Net object model
Fill
DataAdapter DataSet
Update
UpdateCommand
DeleteCommand
SelectCommand
InsertCommand
Errors Collection
Command
Connection Parameters
Data Source
Namespaces
• System.Data &
System.Data.Common
• System.Data.SqlClient &
System.Data.OleDB
• System.Data.SqlTypes
• System.XML &
System.XML.Schema
Using Namespaces
• VB.Net
Imports System.Data
Imports System.Data.SqlClient
Dim sqlAdp as SqlDataAdapter
• C#
using System.Data;
using System.Data.SqlClient;
SqlDataAdapter sqlAdp= new
SqlDataAdapter();
SQL Namespace Objects
• using System.Data.SqlClient;
• SqlConnection
• SqlCommand
• SqlDataReader
• SqlDataAdapter
• SqlParameter
• SqlParameterCollection
• SqlError
• SqlErrorCollection
• SqlException
• SqlTransaction
• SqlDbType
Connecting to SQL
• using System.Data.SqlClient;
string sConnectionString =
"Initial Catalog=Northwind;
Data Source=localhost;
Integrated Security=SSPI;";
sqlAdp.Close();
sqlAdp.Dispose();
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.
Getting data
• SqlCommand
ExecuteReader
ExecuteNonQuery
ExecuteScalar
ExecuteXMLReader
• SqlDataAdapter
DataSet
Using the command object
• SqlCommand
Multiple constructors
• New()
• New(cmdText)
• New(cmdText, connection)
• New(cmdText, connection,
transaction)
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();
Command Methods
• .ExecuteXMLReader() - Returns
XMLReader Object to Read XML
documentation
• .ExecuteScaler() - Returns a Single
Value e.g. SQL SUM function.
The DataReader object
• Setup SqlConnection
• Setup a SqlDataAdapter
• Create a DataSet
• Call the .Fill() method on the DA
DataAdapters
sqlDA.SelectCommand =
new SqlCommand ("select * from
authors“, sqlConnection);
DataSet
DataTable
DataTable
DataRow
DataRow
Using DataTables
• New to ADO.Net
• Tables within a DataSet can now
have relationships, with integrity.
• Supports cascading updates and
deletes.
DataViews