What We Cover : The Dataset and Data Views Managed Providers
What We Cover : The Dataset and Data Views Managed Providers
NET
What we cover…
ADO.NET
Benefits of ADO.NET
ADO.NET Core Concepts and Architecture
The ADO.NET Object Model
The DataSet and Data Views
Managed Providers
1
ADO.NET and the .NET Framework
Base Classes
2
ADO.NET Overview
What Is ADO.NET?
3
ADO.NET Overview
Managed Providers
4
ADO.NET Overview
Managed Providers
Your Application
OLE DB
Provider
SQL Server
Database Database
7
ADO.NET-related Namespaces
ADO.NET
System.Data
8
The (ADO).NET Data Providers
A collection of classes for accessing data sources:
Microsoft SQL Server™ 2000, SQL Server 7, and MSDE
Any OLE Database (OLE DB) providers
Including: Oracle, JET, and SQL OLE DB Providers
Establish connection between DataSets and data stores
Two .NET data providers:
ADO: via the System.Data.OleDb namespace
SQL Server: via the System.Data.SqlClient namespace
System.Data.OleDb is the .NET data provider
9
.NET Data Providers Hierarchy
.Common
Contains classes
shared by both
System.Data
.SqlClient .OleDb
SqlCommand OleDbCommand
SqlConnection OleDbConnection
SqlDataReader OleDbDataReader
SqlDataAdapter OleDbDataAdapter
10
General Steps for Using Web Databases
1. Build your database tables and queries
2. Create a connection to the database
The connection identifies the location of the database
(the data source) and the connection method (an
ODBC driver, OLE-DB provider, or an OLE-DB.NET
data provider), along with any other settings such as
username or password
3. Create an ASP.NET Web page
4. Add an ADO.NET connection object that connects to
the database, executes commands, and returns data
from the database
5. Create code that will interact with the data, display
the data in an ASP.NET control, perform calculations
11 on the data, or upload changes to the database
ADO.Net – Introducing the objects
Connection
used to talk to DB;properties include dataSource,
username and password
SQLConnection and OleDbConnection
Command
An SQL statement or Stored Procedure
SQLCommand and OleDbComand
DataReader-
read only, forward only view of data
CF ADO Recordset
DataSet - main object for DB access
DataView - filtered view of DataSet
12 DataAdapter - Initialises DataSet tables
Introducing the Objects cont.
13
Introducing the Objects cont.
15
Data Connection Properties
SQL Server Name
Default name of the MSDE version of SQL
Server is MachineName\NetSDK
MachineName is the name of your local
computer
Also referred to as (local)\NetSDK or
localhost
Not required in the Connection String –
assumed to be SQL Server if it uses the
SQLClient class
16
Dataset object
DataSet object represents a cache of data, with database-like
structures such as tables, columns, relationships, and
constraints.
DataSet can and does behave much like a database, it is
important to remember that DataSet objects do not interact
directly with databases, or other source data.
Allows the developer to work with a programming model that
is always consistent, regardless of where the source data
resides. Data coming from a database, an XML file, from
code, or user input can all be placed into DataSet objects.
Changes made to the DataSet can be tracked and verified
before updating the source data. The GetChanges method of
the DataSet object actually creates a second DatSet that
contains only the changes to the data. This DataSet is then
used by a DataAdapter (or other objects) to update the
original data source.
For long-running applications this is often the best approach.
17
DataAdapter
Toperform a select query to a SQL database, you create
a SqlConnection to the database passing the
connection string, and then construct a SqlDataAdapter
object that contains your query statement. To populate a
DataSet object with the results from the query, you call
the command's Fill method.
Dim myConnection As New
SqlConnection("server=(local)\NetSDK;database=pubs;Truste
d_Connection=yes")
Dim myCommand As New SqlDataAdapter("select * from
Authors", myConnection)
Dim ds As New DataSet() myCommand.Fill(ds, "Authors")
18
DataReader Object
For Web applications, you are usually performing short
operations with each request (commonly to simply display the
data). You often don't need to hold a DataSet object over a
series of several requests. For situations like these, you can
use a SqlDataReader.
A SqlDataReader provides a forward-only, read-only pointer
over data retrieved from a SQL database.
To use a SqlDataReader, you declare a SqlCommand
instead of a SqlDataAdapter.
The SqlCommand exposes an ExecuteReader method that
returns a SqlDataReader.
Note also that you must explicitly open and close the
SqlConnection when you use a SqlCommand. After a call
to ExecuteReader, the SqlDataReader can be bound to an
ASP.NET server control.
19
DataReader cont.
Dim myConnection As SqlConnection = New
SqlConnection("server=(local)\NetSDK;database=pubs;Trusted_Connection=yes")
Dim myCommand As SqlCommand = New SqlCommand("select * from Authors",
myConnection)
myConnection.Open()
Dim dr As SqlDataReader = myCommand.ExecuteReader() ...
myConnection.Close()
When performing commands that do not require data to be returned, such as
inserts, updates, and deletes, you also use a SqlCommand.
The command is issued by calling an ExecuteNonQuery method, which
returns the number of rows affected. Note that the connection must be
explicitly opened when you use the SqlCommand ( the SqlDataAdapter
automatically handles opening the connection for you).
Dim myConnection As New
SqlConnection("server=(local)\NetSDK;database=pubs;Trusted_Connection=yes")
Dim myCommand As New SqlCommand( "UPDATE Authors SET phone='(800)
555-5555' WHERE au_id = '123-45-6789'", myConnection)
myCommand.Connection.Open()
myCommand.ExecuteNonQuery()
myCommand.Connection.Close()
20
DB Connection Example-1
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
<body>
21
DB Connection Example-2
<SCRIPT language="VB" runat="Server">
Sub Page_Load(Src As Object, E As EventArgs)
Dim ds As DataSet
Dim conn As SQLConnection
Dim cmdAuthors As SQLDataAdapter
Dim dv As DataView
'create a connection to the Pubs database'
conn = New SQLConnection _
("server=localhost;uid=sa;pwd=super;database=pubs")
'create a dataset with information from the authors table'
cmdAuthors = New SQLDataAdapter _
("select * from Authors", conn)
ds = new DataSet()
cmdAuthors.Fill(ds,
22
"Authors") ‘Authors is the DataTable name in ds
DB Connection Example-3
'bind the first datagrid to the DefaultView of the dataset'
dv = ds.Tables("Authors").DefaultView
dgAuthors.DataSource = dv
dgAuthors.DataBind()
'create a new DataView that is authors from California'
'and bind the second datagrid to it'
dv = New DataView(ds.Tables("Authors"))
dv.RowFilter = "state = 'CA'"
dgCAAuthors.DataSource = dv
dgCAAuthors.DataBind()
End Sub
23
</SCRIPT>
DB Connection Example-4
<h2>All Authors</H2>
<ASP:DataGrid id="dgAuthors" runat="server"
Width="700"
BackColor="#ccccff"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
HeaderStyle-BackColor="#aaaadd"/>
<H2>California Authors</H2>
<ASP:DataGrid id="dgCAAuthors" runat="server" />
</body>
24
DB Connection Example-5
Demo the previous code.
http://interdev.csse.monash.edu.au/cse2030/jason1/grid.aspx
NOTE:
Namespaces included in page directives
Objects used:
SqlConnection ; SqlDataAdapter; Dataset; DataView;
Web Form Controls used:
<ASP:DataGrid>
Grid.DataBind() moves data from memory (dataview) to web page
DataGrid does not have to be bound to dataset; can be bound to
a hashtable say
http://jasonc.csse.monash.edu.au/chapter7/datagridsimple.aspx
For source see
25 http://www.csse.monash.edu.au/courseware/cse2030/2002/datagridsimple.txt
Working Data - The DataSet
An in-memory cache of data from a data source
Common way to represent and manipulate data
Universal data container
Not just for use with databases
Logical or physical representation of data
Designed to be disconnected from the data source
Connect, execute query, disconnect
Can use XML
To read and write data
To read and write XMLSchema
26
Properties & Methods of Interest
Collections are used to add & remove tables & relations
Properties of Interest:
Tables: Returns the collection of DataTable objects
Relations: Returns the collection of DataRelations
Namespace: Gets or sets the namespace of the DataSet
Using Properties Samples:
myDataSet.Tables.Add( myTable );
myDataTableCollection = myDataSet.Tables
27
The DataTable
May be mapped to a physical table in the data source
Can be related to one another through DataRelations
Optimistic concurrency or locking - model
Properties of Interest:
Columns: Returns ColumnsCollection of DataColumns
Rows: Returns DataRow objects as a RowsCollection
ParentRelations: Returns the RelationsCollection
Constraints: Returns the table’s ConstraintsCollection
DataSet: Returns the DataSet of the DataTable
PrimaryKey: Gets the DataColumns that make up the
table’s primary key
28
System.Data—DataSet and DataTable
Create a DataTable and add it to a DataSet
30
Creating a DataView by Example
// Code for myTable “Customers” with “Name” column not shown
DataView view1 = new DataView( myTable );
DataView view2 = new DataView( myTable );
// Bind to UI element(s)...
DataGrid myGrid = new DataGrid();
myGrid.SetDataBinding( view1, “Customer”);
//...
31
Relational Databases
Stored Procedure Example
32
ADO.NET - Data Binding
Key component of Web Forms framework
Flexible and easy to use
Bind a control’s property to information in any type
of data store
Provides control over how data moves back and
forth
Simple controls for displaying a single value eg
below using binding tags <%# %>
Complex controls for displaying a data structure eg
datagrid
<asp:Label id=“SelectedValue”runat=server
Text='<%# lstLocation.SelectedItem.Text %>'/>
33
ADO.NET Classes
DataSet Example
34
Stored Procedure Example
<%@ Page Language="vb" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML> <body>
<SCRIPT language="VB" runat="Server">
Dim conn as SQLConnection
Sub Page_Load(Src As Object, E As EventArgs)
conn = New
SQLConnection("server=localhost;uid=sa;pwd=1Aspt;database=conf")
displayCategories()
displayProducts()
displayOrderCount()
35
'the ProductCategoryList storedprocedure has no parameters and
returns ‘records. display the returned records in a datagrid'
Sub displayCategories()
Dim cmd As SQLDataAdapter
Dim ds As DataSet
Dim workParam As SQLParameter = Nothing
'call the ProductCategoryList stored procedure'
cmd = New SQLDataAdapter("ProductCategoryList", conn)
Sub displayOrderCount()
Dim cmd As SQLCommand
Dim workParam As SQLParameter = Nothing
Repeater Example
Simple List -repeater Example
Uses templates for formatting output…to be
discussed next lecture
41
Accessing XML-based Data
42
DataGrid control – some examples
Datagrid properties
UpdatingData in a SQL Database -
gatagrid6.aspx to datagrid10.aspx
43