Panduan: Hanya Menggunakan Prosedur Tersimpan (Visual Basic)
Panduan ini menyediakan LINQ end-to-end dasar untuk skenario SQL guna mengakses data dengan hanya menggunakan prosedur tersimpan. Pendekatan ini sering kali digunakan oleh administrator database untuk membatasi cara datastore diakses.
Catatan
Anda juga dapat menggunakan prosedur tersimpan di LINQ untuk aplikasi SQL guna mengambil alih perilaku default, terutama untuk proses Create
, Update
, dan Delete
. Untuk informasi selengkapnya, lihat Mengustomisasi Operasi Sisipkan, Perbarui, dan Hapus.
Untuk tujuan panduan ini, Anda akan menggunakan dua metode yang telah dipetakan ke prosedur tersimpan dalam database sampel Northwind: CustOrdersDetail dan CustOrderHist. Pemetaan terjadi ketika Anda menjalankan alat baris perintah SqlMetal untuk menghasilkan file Visual Basic. Untuk mendapatkan informasi selengkapnya, lihat bagian Prasyarat berikutnya dalam panduan ini.
Panduan ini tidak bergantung pada Perancang Relasional Objek. Pengembang yang menggunakan Visual Studio juga dapat menggunakan Perancang O/R untuk menerapkan fungsi prosedur tersimpan. Baca Alat LINQ to SQL di Visual Studio.
Catatan
Komputer Anda mungkin memperlihatkan nama atau lokasi yang berbeda untuk beberapa elemen antarmuka pengguna Visual Studio dalam petunjuk berikut. Edisi Visual Studio yang Anda miliki dan setelan yang Anda gunakan menentukan elemen-elemen ini. Untuk informasi selengkapnya, lihat Mempersonalisasi IDE.
Panduan ini ditulis menggunakan Pengaturan Pengembangan Visual Basic.
Prasyarat
Panduan ini membutuhkan hal-hal berikut:
Panduan ini menggunakan folder khusus (“c:\linqtest3”) untuk menyimpan file. Buat folder ini sebelum Anda memulai panduan.
Database sampel Northwind.
Jika Anda tidak memiliki database ini di komputer pengembangan Anda, Anda dapat mengunduhnya dari situs pengunduhan Microsoft. Untuk mengetahui petunjuknya, lihat Mengunduh Database Sampel. Setelah mengunduh database, salin file northwnd.mdf ke folder c:\linqtest3.
File kode Visual Basic yang dihasilkan dari database Northwind.
Panduan ini ditulis dengan menggunakan alat SQLMetal dengan baris perintah berikut:
sqlmetal /code:"c:\linqtest3\northwind.vb" /language:vb "c:\linqtest3\northwnd.mdf" /sprocs /functions /pluralize
Untuk informasi selengkapnya, lihat SqlMetal.exe (Alat Pembuatan Kode).
Gambaran Umum
Panduan ini terdiri atas enam tugas utama:
Menyiapkan solusi LINQ to SQL di Visual Studio.
Menambahkan rakitan System.Data.Linq ke proyek.
Menambahkan file kode database ke proyek.
Membuat koneksi ke database.
Menyiapkan antarmuka pengguna.
Menjalankan dan menguji aplikasi.
Membuat Solusi LINQ to SQL
Dalam tugas pertama ini, Anda membuat solusi Visual Studio yang berisi referensi yang diperlukan untuk membuat dan menjalankan proyek LINQ to SQL.
Untuk membuat solusi LINQ to SQL
Pada menu File Visual Studio, klik Proyek Baru.
Di panel Jenis proyek dalam kotak dialog Proyek Baru, perluas Visual Basic, lalu klik Windows.
Di panel Template, klik Aplikasi Formulir Windows.
Dalam kotak Nama, ketik SprocOnlyApp.
Klik OK.
Perancang Formulir Windows dibuka.
Menambahkan Referensi Rakitan LINQ to SQL
Rakitan LINQ to SQL tidak disertakan dalam template Aplikasi Formulir Windows standar. Anda harus menambahkan rakitan sendiri, seperti dijelaskan dalam langkah-langkah berikut:
Untuk menambahkan System.Data.Linq.dll
Di Penjelajah Solusi, pilih Tampilkan Semua File.
Di Penjelajah Solusi, klik kanan Referensi, lalu pilih Tambahkan Referensi.
Dalam kotak dialog Tambahkan Referensi, klik .NET, klik rakitan System.Data.Linq, lalu klik OK.
Rakitan ditambahkan ke proyek.
Menambahkan File Kode Northwind ke Proyek
Langkah-langkah ini mengasumsikan bahwa Anda telah menggunakan alat SqlMetal untuk menghasilkan file kode dari database sampel Northwind. Untuk mendapatkan informasi selengkapnya, lihat bagian Prasyarat sebelumnya dalam panduan ini.
Untuk menambahkan file kode northwind ke proyek
Pada menu Proyek, klik Tambahkan Item yang Ada.
Dalam kotak dialog Tambahkan Item yang Ada, pindah ke c:\linqtest3\northwind.vb, lalu klik Tambahkan.
File northwind.vb ditambahkan ke proyek.
Membuat Koneksi Database
Dalam langkah ini, Anda menentukan koneksi ke database sampel Northwind. Panduan ini menggunakan "c:\linqtest3\northwnd.mdf" sebagai jalur.
Untuk membuat koneksi database
Di Penjelajah Solusi, klik kanan Form1.vb, lalu klik Tampilkan Kode.
Class Form1
muncul di editor kode.Ketik kode berikut ke dalam blok kode
Form1
:Dim db As New Northwnd("c:\linqtest3\northwnd.mdf")
Menyiapkan Antarmuka Pengguna
Dalam tugas ini, Anda membuat antarmuka sehingga pengguna dapat menjalankan prosedur tersimpan untuk mengakses data dalam database. Dalam aplikasi yang Anda kembangkan dengan panduan ini, pengguna dapat mengakses data dalam database hanya dengan menggunakan prosedur tersimpan yang disematkan dalam aplikasi.
Untuk menyiapkan antarmuka pengguna
Kembali ke Perancang Formulir Windows (Form1.vb[Design]).
Pada menu Tampilan, klik Kotak Alat.
Kotak alat terbuka.
Catatan
Klik pendorongan AutoHide untuk menjaga kotak alat tetap terbuka ketika Anda melakukan langkah-langkah yang tersisa di bagian ini.
Seret dua tombol, dua kotak teks, dan dua label dari kotak alat ke Form1.
Atur kontrol seperti dalam ilustrasi yang menyertainya. Perluas Form1 agar kontrol mudah dipaskan.
Klik kanan Label1, lalu klik Properti.
Ubah properti Teks dari Label1 menjadi Masukkan OrderID:.
Dengan cara yang sama untuk Label2, ubah properti Teks dari Label2 menjadi Masukkan CustomerID:.
Dengan cara yang sama, ubah properti Teks untuk Button1 menjadi Rincian Pesanan.
Ubah properti Teks untuk Button2 menjadi Riwayat Pesanan.
Perluas kontrol tombol sehingga semua teks terlihat.
Untuk menangani klik tombol
Klik dua kali Rincian Pesanan di Form1 untuk membuat penangan aktivitas
Button1
dan membuka editor kode.Ketik kode berikut ke dalam penangan
Button1
:' Declare a variable to hold the contents of ' TextBox1 as an argument for the stored ' procedure. Dim parm As String = TextBox1.Text ' Declare a variable to hold the results returned ' by the stored procedure. Dim custQuery = db.CustOrdersDetail(parm) ' Clear the message box of previous results. Dim msg As String = "" Dim response As MsgBoxResult ' Execute the stored procedure and store the results. For Each custOrdersDetail As CustOrdersDetailResult In custQuery msg &= custOrdersDetail.ProductName & vbCrLf Next ' Display the results. If msg = "" Then msg = "No results." End If response = MsgBox(msg) ' Clear the variables before continuing. parm = "" TextBox1.Text = ""
Sekarang, klik dua kali Button2 pada Form1 untuk membuat penangan aktivitas
Button2
dan membuka editor kode.Ketik kode berikut ke dalam penangan
Button2
:' Comments in the code for Button2 are the same ' as for Button1. Dim parm As String = TextBox2.Text Dim custQuery2 = db.CustOrderHist(parm) Dim msg As String = "" Dim response As MsgBoxResult For Each custOrdHist As CustOrderHistResult In custQuery2 msg &= custOrdHist.ProductName & vbCrLf Next If msg = "" Then msg = "No results." End If response = MsgBox(msg) parm = "" TextBox2.Text = ""
Menguji Aplikasi
Sekarang saatnya untuk menguji aplikasi Anda. Perhatikan bahwa kontak Anda dengan datastore terbatas pada tindakan apa pun yang dapat dilakukan oleh dua prosedur tersimpan. Tindakan tersebut adalah mengembalikan produk yang disertakan untuk orderID yang Anda masukkan, atau mengembalikan riwayat produk yang dipesan untuk CustomerID apa pun yang Anda masukkan.
Untuk menguji aplikasi
Tekan F5 untuk mulai penelusuran kesalahan.
Form1 muncul.
Dalam kotak Masukkan OrderID, ketik 10249 lalu klik Rincian Pesanan.
Kotak pesan mencantumkan produk yang disertakan dalam urutan 10249.
Klik OK untuk menutup kotak dialog.
Dalam kotak Masukkan CustomerID, ketik
ALFKI
, lalu klik Riwayat Pesanan.Kotak pesan mencantumkan riwayat pesanan untuk ALFKI pelanggan.
Klik OK untuk menutup kotak dialog.
Dalam kotak Masukkan OrderID, ketik
123
, lalu klik Rincian Pesanan.Kotak pesan menampilkan “Tidak ada hasil.”
Klik OK untuk menutup kotak dialog.
Pada menu Debug, klik Hentikan penelusuran kesalahan.
Sesi debug ditutup.
Jika Anda telah selesai bereksperimen, Anda dapat mengeklik Tutup Proyek pada menu File, dan menyimpan proyek Anda ketika diminta.
Langkah berikutnya
Anda dapat meningkatkan proyek ini dengan melakukan beberapa perubahan. Contohnya, Anda dapat mencantumkan prosedur tersimpan yang tersedia dalam kotak daftar dan meminta pengguna memilih prosedur yang akan dijalankan. Anda juga dapat mengalirkan output laporan ke file teks.