laporan pemrogaman chapter 13

25
LAPORAN PEMROGAMAN BASIS DATA JARINGAN Using Datasets and Data AdaptersDisusun oleh: Ajeng Yona Falah Informatika 3A 3.34.12.0.01 PROGAM STUDI TEKNIK INFORMATIKA JURUSAN TEKNIK ELEKTRO POLITEKNIK NEGERI SEMARANG 2014/2015

Upload: ajeng-yona-fallah

Post on 14-Apr-2016

47 views

Category:

Documents


7 download

DESCRIPTION

Pemrograman Basis Data Tingkat Lanjut Chapter 13

TRANSCRIPT

Page 1: Laporan Pemrogaman Chapter 13

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

Page 2: Laporan Pemrogaman Chapter 13

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

Page 3: Laporan Pemrogaman Chapter 13

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.

Page 4: Laporan Pemrogaman Chapter 13

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

Page 5: Laporan Pemrogaman Chapter 13

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.

Page 6: Laporan Pemrogaman Chapter 13

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)

Page 7: Laporan Pemrogaman Chapter 13

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

Page 8: Laporan Pemrogaman Chapter 13

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

Page 9: Laporan Pemrogaman Chapter 13

'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

Page 10: Laporan Pemrogaman Chapter 13

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.

Page 11: Laporan Pemrogaman Chapter 13

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"

Page 12: Laporan Pemrogaman Chapter 13

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

Page 13: Laporan Pemrogaman Chapter 13

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

Page 14: Laporan Pemrogaman Chapter 13

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

Page 15: Laporan Pemrogaman Chapter 13

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.

Page 16: Laporan Pemrogaman Chapter 13

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 '

Page 17: Laporan Pemrogaman Chapter 13

'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

Page 18: Laporan Pemrogaman Chapter 13

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

Page 19: Laporan Pemrogaman Chapter 13

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

Page 20: Laporan Pemrogaman Chapter 13

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

Page 21: Laporan Pemrogaman Chapter 13

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

Page 22: Laporan Pemrogaman Chapter 13

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.

Page 23: Laporan Pemrogaman Chapter 13

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

Page 24: Laporan Pemrogaman Chapter 13

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

Page 25: Laporan Pemrogaman Chapter 13

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.