disconnected applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ado.net...
TRANSCRIPT
![Page 1: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/1.jpg)
Disconnected Application
![Page 2: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/2.jpg)
Data Access Architecture
Traditional Data Access Architecture
ADO.NET Disconnected Data Access Architecture
![Page 3: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/3.jpg)
Disconnected Data Access Architecture of ADO.NET
• ADO.NET introduces the concept of disconnected data
architecture
• ADO.NET solves this problem(traditional data access) by managi
ng a local buffer of persistent data called dataset
• Your application automatically connects to the database
server when it needs to pass some query and then
disconnects immediately after getting the result back and storing i
t in dataset
• This design of ADO.NET is called disconnected data
architecture and is very much similar to the connection
less services of http over the internet
![Page 4: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/4.jpg)
ADO.NET Architecture
![Page 5: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/5.jpg)
Dataset
• The ADO.NET DataSet contains Da
taTableCollection and their
DataRelationCollection
• It represents a collection of
data retrieved from the Data
Source.
• The Dataset can work with the data i
t contain, without knowing the sourc
e of the data coming
from
• That is, the Dataset can work
with a disconnected mode from
its Data Source
![Page 6: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/6.jpg)
SqlDataAdapter
• An SqlDataAdapter object works as a mediator between a Data
set and a Database.
• The main functions performed by DataAdapter are:
1. Populate the dataset by fetching data from database, using th
e‘Fill’method
2. Update changes made to the dataset back to the
database, using the
'Update' method
![Page 7: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/7.jpg)
SqlCommandBuilder
• To generate INSERT, UPDATE, or DELETE statements, the
SqlCommandBuilder uses the SelectCommand
property to retrieve a required set of metadata
automatically.
• If you change the SelectCommand after the metadata has bee
n retrieved, such as after the first update, you should call the
RefreshSchema method to update the metadata.
![Page 8: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/8.jpg)
Managing Concurrency
• When two or more users retrieve the data in the same row of a
database table at the same time, it is called concurrency. Because
ADO.NET uses a disconnected data architecture, the database
management system can’t prevent this from happening.
• By default, ADO.NET uses optimistic concurrency (the program checks to see
whether the database row that’s going to be updated or
deleted has been changed since it was retrieved.)
![Page 9: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/9.jpg)
Dataset Changes
![Page 10: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/10.jpg)
Initializing DataAdapters for Update
• In ADO.NET, you must add your own code for submitting databa
se updates to the DataAdapter object. There are
three ways of doing this:
1. You can supply your
own updating logic.
2. You can use the Data
Adapter Configuration
Wizard to generate
the updating logic.
3. You can use the
CommandBuilder
object to generate the updating logic.
![Page 11: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/11.jpg)
SqlDataAdapter Syntax
' The DataSet that holds the data
Dim ds As New DataSet(DATASET_NAME)
' Create the SqlDataAdapter
Dim da As SqlDataAdapter
da = New SqlDataAdapter(SELECT_STRING, CONNECT_OBJECT)
' Create the SqlCommandBuilder
Dim cb As SqlCommandBuilder = New SqlCommandBuilder(da)
' Fill the DataSet
da.MissingSchemaAction=MissingSchemaAction.AddWithKey
da.Fill(ds)
![Page 12: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/12.jpg)
Changing the Order of Insert, Update, and Delete Operations
Dim dt As DataTable = ds.Tables("Authors“)
‘ First process deletes.
da.Update(dt.Select(Nothing, Nothing, _
DataViewRowState. Deleted))
' Next process updates.
da.Update(dt.Select(Nothing, Nothing, _
DataViewRowState. ModifiedCurrent))
' Finally process inserts.
da.Update(dt.Select(Nothing, Nothing, _
DataViewRowState.Added))
![Page 13: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/13.jpg)
Dataset Manipulation
After your dataset is
populated with data,
you will typically
perform some kind of man
ipulation of the
data before sending it bac
k to the data
source or to another
process or application
![Page 14: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/14.jpg)
Inserting New Records into a Dataset
Dim rowBaru As DataRow = dtPenjualan.NewRow
rowBaru("Tanggal") = _
dtpPenjualan.Value.ToShortDateString
rowBaru("Kode_Pelanggan")=tbKodePelanggan.Text
dtPenjualan.Rows.Add(rowBaru)
![Page 15: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/15.jpg)
Updating Existing Records in a Dataset
Dim rowUbah As DataRow = dtPenjualan.Rows(0)
rowUbah.BeginEdit()
rowUbah("Tanggal") = _
dtpPenjualan.Value.ToShortDateString
rowUbah("Kode_Pelanggan")=tbKodePelanggan.Text
rowUbah.EndEdit()
![Page 16: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/16.jpg)
Deleting Records in a Dataset
Dim rowHapus As DataRow = dtPenjualan.Rows(0)
dtPenjualan.Rows.Remove(rowHapus)
Or
dtPenjualan.Rows(0).Delete()
![Page 17: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/17.jpg)
Committing Changes in the Dataset
• You can commit the pending changes to the dataset by
calling the AcceptChanges method.
• Typically, AcceptChanges would be called at the following
times in your application.
‘commit
dtPenjualan.AcceptChanges()
‘rollback
dtPenjualan.RejectChanges()
![Page 18: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/18.jpg)
Finding Rows in ADO.NET
ADO.NET implements three basic forms to locate Rows :
1. Find Method
2. Contains Method
3. Select Method
![Page 19: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/19.jpg)
Find Method
‘nilai pada sebuah kolom primary key
Dim drCari As DataRow
drCari = dtPenjualan.Rows.Find
("Data Yang Dicari")
If Not drCari Is Nothing Then
MessageBox.Show("Data Ditemukan")
‘menampilkan isi kolom pertama pada data
yang ditemukan
MessageBox.Show(drCari.Item(0))
Else
MessageBox.Show("Data Tidak Ada")
End If
![Page 20: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/20.jpg)
Contains Method
‘metode Contains
Dim statusCari As Boolean
statusCari = dtPenjualan.Rows.Contains
("Data Yang Dicari")
If statusCari = True Then
MessageBox.Show("Data Ditemukan")
Else
MessageBox.Show("Data Tidak Ada")
End If
![Page 21: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/21.jpg)
Select Method
Dim drCari() As DataRow
drCari = dtPenjualan.Select("Kode_Pelanggan=" & _
"'Data Yang Dicari'")
If drCari.Length > 0 Then
MessageBox.Show("Data Ditemukan")
‘menampilkan isi kolom pertama pada data yang
ditemukan
Dim dr As DataRow
For Each dr In drCari
MessageBox.Show(dr.Item(0))
Next
Else
MessageBox.Show("Data Tidak Ada")
End If
![Page 22: Disconnected Applicationocw.stikom.edu/course/download/2011/09/08-12-2011.11.00.38_020393...ADO.NET uses a disconnected data architecture, the database management system can’t prevent](https://reader030.vdocuments.net/reader030/viewer/2022040416/5d2bd43588c9936a308bc68f/html5/thumbnails/22.jpg)
Daftar Pustaka
http://www.codeproject.com/KB/grid/practicalguidedatag
rids1.aspx
http://www.programmersheaven.com/2/FAQ-ADONET-Disconne
cted-Data-Access
http://vb.net-informations.com/dataset/ado.net-dataset
.htm
http://msdn.microsoft.com/en-us/library/ee817654.aspx#
daag_performingupdates
http://www.microsoft.com/mspress/books/sampchap/5199b.
aspx
http://www.akadia.com/services/dotnet_rowstate.html