Disusun oleh:
Ajeng Yona Falah
Informatika 3A
3.34.12.0.01
I.
II.
Dasar Teori
Memahami Model Object
Kita harus mengenal dalam bekerja dengan dataset dan Data Adaptor. Kita akan
mulai dengan melihat perbedaan antara dataset dan Data Reader, dan kemudian
melanjutkan untuk melihat lebih detail bagaimana data terstruktur dalam dataset
dan bagaimana dataset bekerjasama dengan Data Adaptor.
Datasets vs Data Readers
Jika Kita hanya ingin membaca dan menampilkan data, maa ka Kita hanyperlu
menggunakan Data Reader, seperti yang Kita lihat pada bab sebelumnya, terutama
jika Kita bekerja dengan sejumlah data besar, dalam situasi negosiasi di mana Kita
harus mengulang melalui ribuan atau jutaan baris, Kita ingin sequenesensial reader
(membaca baris dari hasil set satu per satu), dan Data Reader melakukan pekerjaan
ini dengan cara yang efisien. Jika Kita perlu memanipulasi data dengan cara apapun
dan kemudian memperbarui database, Kita harus menggunakan dataset. Sebuah
Data Adaptor mengisi dataset dengan menggunakan Data Reader; sumber tambahan
diperlukan untuk menyimpan data untuk penggunaan terputus. Kita harus berpikir
tentang apakah Kita benar-benar membutuhkan dataset; jika tidak, Kita hanya akan
membuang-buang sumber daya. Kecuali Kita perlu memperbarui Data Source atau
menggunakan fitur dataset lain seperti read dan write ke file XML, mengekspor
basis data skema, dan menciptakan XML database, menggunakan Data Reader.
Perkenalan Datasets
Dataset dalam ADO.NET adalah langkah besar dalam dunia pengembangan
aplikasi database multitiered. Ketika mengambil atau memodifikasi data dalam
jumlah besar, menjaga koneksi terbuka ke Data Source sambil menunggu pengguna
untuk membuat permintaan merupakan limbah besar sumber daya yang sangat
berharga.
Dataset sangat membantu di sini, karena mereka memungkinkan Kita untuk
menyimpan dan memodifikasi jumlah data besar dalam cache lokal, melihat data
tabel, dan memproses data secara offline Modus (dengan kata lain, terputus dari
database).
Mari kita lihat sebuah contoh. Bayangkan Kita sedang mencoba untuk
menyambung ke server basis data jauh melalui Internet untuk informasi rinci
tentang beberapa transaksi bisnis. Kita mencari ditanggal tertentu untuk semua
transaksi yang tersedia, dan hasilnya akan ditampilkan. Di balik adegan, aplikasi
Kita membuat koneksi dengan Data Source, bergabung dengan beberapa tabel, dan
mengambil hasil. Misalkan Kita sekarang ingin mengedit informasi ini dan
menambahkan atau menghapus details.Whatever alasannya, aplikasi Kita akan
pergi melalui siklus yang sama berulang-ulang lagi: membuat koneksi baru,
bergabung tabel, dan mengambil data. Tidak hanya ada kelebihan kepala dalam
menciptakan koneksi baru setiap kali, tetapi Kita mungkin akan melakukan banyak
berlebihan lainnya bekerja, terutama jika Kita sedang berhadapan dengan data yang
sama. Bukankah lebih baik jika Kita dapat menghubungkan ke Data Source sekali,
menyimpan data secara lokal dalam struktur yang menyerupai data- relasional
dasar, menutup sambungan, memodifikasi data lokal, dan kemudian menyebarkan
perubahan Data Source kapan waktu yang tepat?
Dataset dirancang untuk melakukannya. Sebuah toko dataset data relasional sebagai
koleksi data tables.Kamu bertemu tabel data secara singkat dalam bab sebelumnya
ketika Objek System.Data. dan DataTable adalah untuk menyimpan informasi
skema. Dalam hal itu, bagaimanapun, tabel data hanya berisi informasi skema,
tetapi dalam dataset, tabel data yang berisi baik metadata yang menggambarkan
struktur data dan data itu sendiri. Seperti pada Figure 13-1 menunjukkan arsitektur
dataset.
Data Adaptor konstruktor kelebihan beban. Kita dapat menggunakan salah satu dari
berikut untuk mendapatkan barudata adapter. Kita menggunakan data provider SQL
Server, tapi konstruktor untuk data lain provider analog.
Dim da As SqlDataAdapter = New SqlAdapter
Dim da As SqlDataAdapter = New SqlAdapter (cmd)
Dim da As SqlDataAdapter = New SqlAdapter (sql, conn)
Dim da As SqlDataAdapter = New SqlAdapter (sql, connString)
Jadi, Kita dapat membuat Data Adaptor empat cara:
Kita dapat melewati konstruktor perintah (di sini, cmd adalah objek
SqlCommand).
III.
IV.
Langkah Kerja
A. Mengisi Sebuah Dataset dengan Data Adapters
1. Buat Projek Visual Basic Console Aplication baru dengan nama Chapter13.
Try
'Open connection
conn.Open()
Dim cmd As SqlCommand = New SqlCommand(sql, conn)
'create data adapter
Dim da As SqlDataAdapter = New SqlDataAdapter(sql, conn)
'create dataset
Dim ds As DataSet = New DataSet
'fill dataset
da.Fill(ds, "products")
'get data table
Dim dt As DataTable = ds.Tables("products")
'display data
Dim row As DataRow
For Each row In dt.Rows
Dim col As DataColumn
For Each col In dt.Columns
Console.WriteLine(row(col))
Next col
Console.WriteLine("".PadLeft(20, "="c))
Next row
Catch e As Exception
Console.WriteLine("Error Occurred:" & e.ToString)
Finally
' Close connection
conn.Close()
End Try
End Sub
End Module
Sub Main()
Dim connstring As String = ("Data Source=AJENG; Integrated
Security=True; database=northwind")
'query
Dim sql As String = "select contactname,country from customers
"
'create connection
Dim conn As SqlConnection = New SqlConnection(connstring)
Try
'create data adapter
Dim da As SqlDataAdapter = New SqlDataAdapter
da.SelectCommand = New SqlCommand(sql, conn)
'create and fill dataset
Dim ds As DataSet = New DataSet
da.Fill(ds, "customers")
' get data table reference
Dim dt As DataTable = ds.Tables("customers")
' create data view
Dim dv As New DataView(dt, "country = 'Germany'",
"country", DataViewRowState.CurrentRows)
' display data from data view
Dim drv As DataRowView
For Each drv In dv
Dim i As Integer
For i = 0 To dv.Table.Columns.Count - 1
Console.Write((drv(i) + ControlChars.Tab))
Next i
Console.WriteLine()
Next drv
Catch e As Exception
Console.WriteLine("Error Occurred:" & e.ToString)
Finally
' Close connection
conn.Close()
End Try
End Sub
End Module
newRow("lastname") = "Beatty"
newRow("titleofcourtesy") = "Sir"
newRow("city") = "Birmingham"
newRow("country") = "UK"
dt.Rows.Add(newRow)
' display rows
Dim row As DataRow
For Each row In dt.Rows
Console.WriteLine("{0} {1} {2}",
row("firstname").ToString().PadRight(15),
row("lastname").ToString().PadLeft(25), row("city"))
Next row
' code for updating the database would come here
Catch e As Exception
Console.WriteLine(("Error: " + e.ToString))
Finally
' close connection
conn.Close()
End Try
End Sub
End Module
'create command
Dim cmd As SqlCommand = New SqlCommand(del, conn)
'
'map parameters
cmd.Parameters.Add("@employeeid", SqlDbType.Int, 4,
"employeeid")
'
'select employees
Dim filt As String = "firstname = 'Roy'and lastname =
'Beatty'"
' delete employees
Dim row As DataRow
For Each row In dt.Select(filt) '
row.Delete()
Next row
da.DeleteCommand = cmd
da.Update(ds, "employees")
' display rows
For Each row In dt.Rows
Console.WriteLine("{0} {1} {2}", _
row("firstname").ToString().PadRight(15), _
row("lastname").ToString().PadLeft(25), row("city"))
Next row
Catch e As Exception
Console.WriteLine(("Error: " + e.ToString))
Finally
' close connection
conn.Close()
End Try
End Sub
End Module
H. Penggunaan SQLCommandBuilder
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PersistAddsBuilder pada Chapter13 solution.
V.
Lembar Kerja
No
1
pada contoh ini, dua buah kueri dikombinasikan menjadi satu. Data diambil
dari table collection dari properti Tables dari dataset untuk mengurangi
referensi selanjutnya.
Perintah :
Dim fl As String = "country = 'Germany'"
Dalam contoh ini, kita membuat data view dan menginisialisasi dengan
memberi empat parameter ke dalam konstruktornya. Parameter pertama
adalah data tabel, kemudian filter dari konten, sorting, dan spesifikasi tipe
dari baris untuk memasukkan ke dalam data view. Setiap kali baris
ditambahkan, dimodifikasi, atau dihapus, state dari baris berubah menjadi
yang seharusnya.
4
pada contoh ini ditambahkan kueri dengan nama upd untuk melakukan
statemen UPDATE. Kita menggantikan komentar update pada blok try
Pada contoh ini kita menambahkan statemen INSERT pada string ins. Kita
mengganti komentar update dari blok try dengan sedikit kode. Lalu kita
mengkonfigurasikan parameternya dengan lima nilai, dengan kolom lain
yang nullable sehingga kita tidak perlu memberikannya nilai. Lalu kita
eksekusi dengan memanggil method Update pada data adapter.
7
Penggunaan SQLCommandBuilder
ketika kita membuat dataset, kita membuat data table. Karena data table
hanya bisa menampung satu tabel saja, perhatikan bahwa method Fill tidak
menerima nama data tabel sebagai argumen.
VI.
Kesimpulan
Pada bab ini kita mempelajari materi dasar dari dataset dan data adapter. Sebuah
dataset adalah representasi dari relasi data yang mempunyai koleksi dari data tabel,
dan setiap data tabel mempunyai koleksi data berupa baris dan kolom. Sedangkan
data adapter adalah objek yang mengkontrol bagaimana data dimunculkan ke dalam
dataset atau data tabel dan bagaimana mengubahnya menjadi dataset.
Kita belajar cara untuk mengisi atau mengakses dataset, bagaimana melakukan
filtering dan sorting pada data tabel, dan mengetahui baha operasi disconnected
bukanlah mode default dari dataset.