laporan pemrogaman chapter 13
DESCRIPTION
Pemrograman Basis Data Tingkat Lanjut Chapter 13TRANSCRIPT
LAPORAN PEMROGAMAN
BASIS DATA JARINGAN
”Using Datasets and Data Adapters”
Disusun oleh:
Ajeng Yona Falah
Informatika 3A
3.34.12.0.01
PROGAM STUDI TEKNIK INFORMATIKA
JURUSAN TEKNIK ELEKTRO
POLITEKNIK NEGERI SEMARANG
2014/2015
I. Tujuan Instruksional Khusus
Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:
1. Memahami apa itu dataset dan data adapter
2. Menggunakan dataset dan data adapter pada VB.NET
3. Mengubah data source
4. Menggunakan dataset untuk membuat file XML
5. Menggunakan data tabel tanpa dataset
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.
Figure 13-1. Dataset architecture
Arsitektur mencerminkan desain logis dari database relasional. Kita akan melihat
bagaimana menggunakan tabel data, baris data, dan kolom data dalam bab ini.
Pengenalan Data Adapters
Ketika pertama kali Kita instantiate dataset, itu tidak berisi data. Kita mendapatkan
dataset yang dihuni oleh Data Adaptor, yang menangani rincian sambungan dan
merupakan komponen dari data provider. Sebuah dataset bukan bagian dari data
provider. Ini seperti ember, siap untuk diisi dengan air, tapi perlu pipa eksternal
untuk membiarkan air masuk. Dengan kata lain, kebutuhan dataset dan data adaptor
untuk mengisi dengan data dan untuk mendukung akses ke Data Source. Setiap data
provider memiliki data adapter sendiri dengan cara yang sama bahwa ia memiliki
konektor sendiri tion, perintah, dan Data Reader. Figure 13-2 menggambarkan
interaksi antara dataset,data adapter, dan Data Source.
Figure 13-2. Dataset,data adapter,and data source interaction
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 menggunakan nya (SQL menetapkan dan menyambungkan
kemudian) parameterless konstruktor.
• Kita dapat melewati konstruktor perintah (di sini, cmd adalah objek
SqlCommand).
• Kita dapat melewati string SQL dan sambungan.
• Kita dapat melewati string SQL dan string koneksi.
Kita akan melihat semua kerja ini dalam tindakan segera. Untuk saat ini, Kita
akan bergerak dan menunjukkan bagaimana menggunakan tabel data, kolom
data, dan baris data. Kita akan menggunakan ini di bagian yang akan datang.
Pengenalan Data Tables, Data Columns, dan Data Rows
Sebuah tabel data adalah turunan dari System.Data.DataTable kelas. konseptual
analog tabel relasional Ini seperti ditunjukkan dalam Figure 13-1, tabel data
memiliki koleksi baris data dan data kolom. Kita dapat mengakses koleksi
bersarang melalui Baris dan Kolom sifat tabel data.
Sebuah tabel data dapat mewakili tabel berdiri sendiri atau independen, baik di
dalam dataset seperti yang akan Kita lihat dalam bab ini-atau sebagai objek yang
diciptakan oleh metode lain, seperti yang Kita lihat di bab sebelumnya ketika
sebuah tabel data yang dikembalikan dengan memanggil metode GetSchemaTable
pada Data Reader. Kolom Data pada skema kolom dalam tabel data dan kemudian
dapat digunakan untuk mengatur atau mendapatkan properti kolom. Misalnya, Kita
bisa menggunakannya untuk mengatur nilai default kolom dengan menetapkan nilai
properti DefaultValue kolom data.
III. Alat dan Bahan
1. SQL Server 2014
2. Visual Basic NET
3. Northwind Sample Database
IV. Langkah Kerja
A. Mengisi Sebuah Dataset dengan Data Adapters
1. Buat Projek Visual Basic Console Aplication baru dengan nama Chapter13.
2. Ubah nama projek Chapter13 menjadi PopDataset. Ubah nama file
Module1.vb menjadi PopDataset.vb.
3. Ketikkan kode berikut pada halaman kode PopDataset.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PopDataset Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select productname,unitprice from products where unitprice < 20" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring)
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
4. Jalankan PopDataset dengan menekan tombol Ctrl+F5
B. Filtering dan Sorting Data Secara Dinamis dalam Sebuah Dataset
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
FilterSort pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi FilterSort.vb
3. Ketikkan kode berikut pada halaman kode FilterSort.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module FilterSort Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'query 1 Dim sql1 As String = "select * from customers" 'query 2 Dim sql2 As String = " select * from products where unitprice < 10" 'combine queries Dim sql As String = sql1 + sql2 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try 'Open connection conn.Open() '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 the data tables collection Dim dtc As DataTableCollection = ds.Tables ' display data from first data table ' ' display output header Console.WriteLine("Results from Customers table:") Console.WriteLine(("CompanyName".PadRight(20) + "ContactName".PadLeft(23) + ControlChars.Lf)) ' set display filter Dim fl As String = "country = 'Germany'" ' set sort Dim srt As String = "companyname asc" ' display filtered and sorted data Dim row As DataRow For Each row In dtc("customers").Select(fl, srt) Console.WriteLine("{0}" + ControlChars.Tab + "{1}", row("CompanyName").ToString(). _ PadRight(25), row("ContactName")) Next row ' display data from second data table ' ' display output header Console.WriteLine(ControlChars.Lf + "----------------") Console.WriteLine("Results from Products table:") Console.WriteLine(("ProductName".PadRight(20) + _ "UnitPrice".PadLeft(21) + ControlChars.Lf)) ' display data
'Dim row As DataRow For Each row In dtc(1).Rows Console.WriteLine("{0}" + ControlChars.Tab + "{1}", row("productname").ToString(). _ PadRight(25), row("unitprice")) Next row Catch e As Exception Console.WriteLine("Error Occurred:" & e.ToString) Finally ' Close connection conn.Close() End Try End Sub End Module
4. Jalankan FilterSort dengan menekan tombol Ctrl+F5
C. Refining Data Menggunakan Data View
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
DataViews pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi DataViews.vb
3. Ketikkan kode berikut pada halaman kode DataViews.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module DataViews
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
4. Jalankan DataViews dengan menekan tombol Ctrl+F5
D. Memodifikasi Data Table dalam Dataset
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
ModifyDataTable pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi ModifyDataTable.vb
3. Ketikkan kode berikut pada halaman kode ModifyDataTable.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module ModifyDataTable Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select * from employees where country = 'UK'" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try ' create data adapter Dim da As New SqlDataAdapter() da.SelectCommand = New SqlCommand(sql, conn) ' create and fill dataset Dim ds As New DataSet() da.Fill(ds, "employees") ' get data table reference Dim dt As DataTable = ds.Tables("employees") ' FirstName column should be nullable dt.Columns("firstname").AllowDBNull = True ' modify city in first row dt.Rows(0)("city") = "Wilmington" ' add a row Dim newRow As DataRow = dt.NewRow() newRow("firstname") = "Roy"
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
4. Jalankan ModifyDataTable dengan menekan tombol Ctrl+F5
E. Menyebarkan Perubahan Dataset ke Data Source
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PersistChanges pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi PersistChanges.vb
3. Ketikkan kode berikut pada halaman kode PersistChanges.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PersistChanges Sub Main() Dim connstring As String = ("Data Source=.\sqlexpress; Integrated Security=True; database=northwind") 'query Dim qry As String = "select * from employees where country = 'UK'" 'SQL to update employees Dim upd As String = "update employees set city = @city where employeeid = @employeeid" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try ' create data adapter Dim da As New SqlDataAdapter() da.SelectCommand = New SqlCommand(qry, conn) ' create and fill dataset Dim ds As New DataSet() da.Fill(ds, "employees") ' get data table reference Dim dt As DataTable = ds.Tables("employees") ' modify city in first row dt.Rows(0)("city") = "Wilmington" ' 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 ' update Employees ' ' create command Dim cmd As New SqlCommand(upd, conn) ' ' map parameters ' ' City cmd.Parameters.Add("@city", SqlDbType.NVarChar, 15, "city") ' ' EmployeeID Dim parm As SqlParameter = cmd.Parameters.Add _ ("@employeeid", SqlDbType.Int, 4, "employeeid") parm.SourceVersion = DataRowVersion.Original ' Update database da.UpdateCommand = cmd da.Update(ds, "employees") Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) Finally ' close connection conn.Close() End Try End Sub End Module
4. Jalankan PersistChanges dengan menekan tombol Ctrl+F5
F. Menyebarkan Baris Dataset Baru ke Data Source 1
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PersistAdds pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi PersistAdds.vb
3. Ketikkan kode berikut pada halaman kode PersistAdds.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PersistAdds Sub Main() Dim connstring As String = ("Data Source=.\sqlexpress; Integrated Security=True; database=northwind") 'query Dim qry As String = "select * from employees where country = 'UK'" 'SQL to insert employees Dim ins As String = "insert into employees " & _ "(firstname,lastname,titleofcourtesy,city,country)" & _ "values(@firstname,@lastname,@titleofcourtesy,@city,@country)" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try ' create data adapter Dim da As New SqlDataAdapter() da.SelectCommand = New SqlCommand(qry, conn) ' create and fill dataset
Dim ds As New DataSet() da.Fill(ds, "employees") ' get data table reference Dim dt As DataTable = ds.Tables("employees") ' add a row Dim newRow As DataRow = dt.NewRow() newRow("firstname") = "Roy" 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 ' insert employees ' ' create command Dim cmd As New SqlCommand(ins, conn) ' ' map parameters cmd.Parameters.Add("@firstname", _ SqlDbType.NVarChar, 10, "firstname") cmd.Parameters.Add("@lastname", _ SqlDbType.NVarChar, 20, "lastname") cmd.Parameters.Add("@titleofcourtesy", _ SqlDbType.NVarChar, 25, "titleofcourtesy") cmd.Parameters.Add("@city", _ SqlDbType.NVarChar, 15, "city") cmd.Parameters.Add("@country", _ SqlDbType.NVarChar, 15, "country") ' ' insert employees da.InsertCommand = cmd da.Update(ds, "employees") Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) Finally ' close connection conn.Close() End Try End Sub End Module
4. Jalankan PersistAdds dengan menekan tombol Ctrl+F5
G. Menyebarkan Baris Dataset Baru ke Data Source 2
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PersistDeletes pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi PersistDeletes.vb
3. Ketikkan kode berikut pada halaman kode PersistDeletes.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PersistDeletes Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'query Dim qry As String = "select * from employees where country = 'UK'" 'SQL to delete employees Dim del As String = "delete from employees where employeeid = @employeeid" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try 'create data adapter Dim da As SqlDataAdapter = New SqlDataAdapter da.SelectCommand = New SqlCommand(qry, conn) 'create and fill dataset Dim ds As DataSet = New DataSet da.Fill(ds, "employees") 'get data table reference Dim dt As DataTable = ds.Tables("employees") 'delete employees '
'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
4. Jalankan PersistDeletes dengan menekan tombol Ctrl+F5
H. Penggunaan SQLCommandBuilder
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PersistAddsBuilder pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi PersistAddsBuilder.vb
3. Ketikkan kode berikut pada halaman kode PersistAddsBuilder.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PersistAddsBuilder Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'query Dim qry As String = "select * from employees where country = 'UK'" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try ' create data adapter Dim da As New SqlDataAdapter() da.SelectCommand = New SqlCommand(qry, conn) 'create command builder Dim cb As SqlCommandBuilder = New SqlCommandBuilder(da) ' create and fill dataset Dim ds As New DataSet() da.Fill(ds, "employees") ' get data table reference Dim dt As DataTable = ds.Tables("employees") ' add a row Dim newRow As DataRow = dt.NewRow() newRow("firstname") = "Roy" 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 ' insert employees da.Update(ds, "employees") Catch e As Exception Console.WriteLine(("Error: " + e.ToString)) Finally ' close connection conn.Close() End Try End Sub End Module
4. Jalankan PersistAddsBuilder dengan menekan tombol Ctrl+F5
I. Ekstrak Dataset ke Sebuah XML File
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
WriteXML pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi WriteXML.vb
3. Ketikkan kode berikut pada halaman kode WriteXML.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module WriteXML Sub Main() Dim connstring As String = ("Data Source=AJENG; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "Select productname,unitprice from products" '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) 'Open connection conn.Open() 'create and fill dataset Dim ds As DataSet = New DataSet da.Fill(ds, "products") 'extract dataset to XML file ds.WriteXml("E:\KULIAH\Semester 5\Pemrograman Basis Data Lanjut\Praktek\VB-Chapter6\Chapter13\WriteXML\productstable.xml") Console.WriteLine("The XML file is Created") Catch e As Exception Console.WriteLine("Error Occurred:" & e.ToString) Finally ' Close connection conn.Close() End Try End Sub End Module
4. Jalankan WriteXML dengan menekan tombol Ctrl+F5
J. Mengisi Sebuah Data Table Menggunakan Data Adapter
1. Tambahkan projek Visual Basic Console Aplication baru dengan nama
PopDataTable pada Chapter13 solution.
2. Ubah nama file Module1.vb menjadi PopDataTable.vb
Ketikkan kode berikut pada halaman kode PopDataTable.vb
Imports System Imports System.Data Imports System.Data.SqlClient Module PopDataTable Sub Main() Dim connstring As String = ("Data Source=.\sqlexpress; Integrated Security=True; database=northwind") 'create command (with both text and connection) Dim sql As String = "select productname,unitprice from products where unitprice < 20" 'create connection Dim conn As SqlConnection = New SqlConnection(connstring) Try 'Open connection conn.Open() 'create data adapter Dim da As SqlDataAdapter = New SqlDataAdapter(sql, conn) 'create data table Dim dt As DataTable = New DataTable 'fill data table da.Fill(dt) '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
3. Jalankan PopDataTable dengan menekan tombol Ctrl+F5
V. Lembar Kerja
No Judul / Hasil / Analisa
1 Mengisi Sebuah Dataset dengan Data Adapters
Method Fill menggunakan sebuah data reader internal untuk mengakses
skema tabel dan data dan kemudian menggunakan keduanya untuk
mempopulasikan dataset. Jika kita tidak menginisialisasikan nama tabel
pada method Fill, maka otomatis akan diisikan tabelN. Jika dataset
ditambahkan tabel lain, maka N akan di-increment. Lebih baik nama tabel
disebutkan secara deksriptif.
2 Filtering dan Sorting Data Secara Dinamis dalam Sebuah Dataset
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'"
adalah ekspresi filtering yang memberikan kriteria pada baris yang
diseleksi. Seperti sintaks WHERE pada SQL.
Perintah :
Dim srt As String = "companyname asc"
menspesifikasi sorting seperti ORDER BY pada SQL.
3 Refining Data Menggunakan Data View
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 Memodifikasi Data Table dalam Dataset
Berikut ini dicontohkan bagaimana cara mengganti schema information,
dan memodifikasi baris menggunakan teknik seperti yang dicontohkan.
5 Menyebarkan Perubahan Dataset ke Data Source
pada contoh ini ditambahkan kueri dengan nama upd untuk melakukan
statemen UPDATE. Kita menggantikan komentar update pada blok try
dengan sedikit kode. Kemudian mengkonfigurasi parameter @employeeid,
dengan data kolom bernama employeeid. Tidak seperti @city, kita
memastikan @employeeid mendapatkan nilai dari data sebelum ada
perubahan. Dan kita memberikan properti UpdateCommand pada data
adapter untuk mengupdate tabel Employees, lalu SQL akan dieksekusi
ketika kita memanggil method Update.
6 Menyebarkan Baris Dataset Baru ke Data Source 1
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 Menyebarkan Baris Dataset Baru ke Data Source 2
sama seperti dua praktikum sebelumnya, yang membedakan hanya pada
praktikum ini menggunakan statemen delete.
8 Penggunaan SQLCommandBuilder
menggunakan command builder lebih baik daripada koding SQL manual.
Ingat bahwa mereka hanya bekerja pada satu tabel saja dan tabel harus
punya primary key.
9 Ekstrak Dataset ke Sebuah XML File
kita menggantikan console display loop dengan sebuah method yang
dipanggil untuk membuat file XML (ds.WriteXml). kita berikan alamat
penuh untuk file XML pada direktori dari solution kita. Ketika kita tidak
memberikan alamatnya, file akan ditempatkan pada bin\Release dibawah
direktori projek WriteXML.
10 Mengisi Sebuah Data Table Menggunakan Data Adapter
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.