Bagikan melalui


Panduan: Hanya Menggunakan Prosedur Tersimpan (C#)

Panduan ini menyediakan LINQ end-to-end dasar untuk SQL skenario untuk mengakses data dengan menjalankan prosedur tersimpan saja. 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 saat Anda menjalankan alat baris perintah SqlMetal untuk menghasilkan file C#. 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 dengan menggunakan Pengaturan Pengembangan Visual C#.

Prasyarat

Panduan ini membutuhkan hal-hal berikut:

  • Panduan ini menggunakan folder khusus ("c:\linqtest7") 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 Anda mengunduh database, salin file northwnd.mdf ke folder c:\linqtest7.

  • File kode C# dihasilkan dari database Northwind.

    Panduan ini ditulis dengan menggunakan alat SQLMetal dengan baris perintah berikut:

    sqlmetal /code:"c:\linqtest7\northwind.cs" /language:csharp "c:\linqtest7\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 dengan 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

  1. Di Visual Studio, pada menu File, arahkan ke Baru, lalu klik Proyek.

  2. Di panel Jenis proyek di kotak dialog Proyek Baru, klik Visual C#.

  3. Di panel Template, klik Aplikasi Formulir Windows.

  4. Dalam kotak Nama, ketik SprocOnlyApp.

  5. Di kotak Lokasi, verifikasi tempat Anda ingin menyimpan file proyek Anda.

  6. 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

  1. Di Penjelajah Solusi, klik kanan Referensi, lalu pilih Tambahkan Referensi.

  2. 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

  1. Pada menu Proyek, klik Tambahkan Item yang Ada.

  2. Dalam kotak dialog Tambahkan Item yang Ada, pindahkan ke c:\linqtest7\northwind.cs, lalu klik Tambahkan.

    File northwind.cs ditambahkan ke proyek.

Membuat Koneksi Database

Dalam langkah ini, Anda menentukan koneksi ke database sampel Northwind. Panduan ini menggunakan "c:\linqtest7\northwnd.mdf" sebagai jalur.

Untuk membuat koneksi database

  1. Di Penjelajah Solusi, klik kanan Form1.cs, lalu klik Tampilkan Kode.

  2. Ketik kode berikut ke dalam Form1 kelas :

    Northwnd db = new Northwnd(@"c:\linqtest7\northwnd.mdf");
    

Menyiapkan Antarmuka Pengguna

Dalam tugas ini Anda menyiapkan 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

  1. Kembali ke Formulir Windows Designer (Form1.cs[Design]).

  2. 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.

  3. 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.

  4. Klik kanan Label1, lalu klik Properti.

  5. Ubah properti Teks dari Label1 menjadi Masukkan OrderID:.

  6. Dengan cara yang sama untuk Label2, ubah properti Teks dari Label2 menjadi Masukkan CustomerID:.

  7. Dengan cara yang sama, ubah properti Teks untuk button1 menjadi Detail Pesanan.

  8. Ubah properti Teks untuk button2 menjadi Riwayat Pesanan.

    Perluas kontrol tombol sehingga semua teks terlihat.

Untuk menangani klik tombol

  1. Klik dua kali Detail Pesanan di Form1 untuk membuka penanganan aktivitas button1 di editor kode.

  2. Ketik kode berikut ke dalam penangan button1:

    // Declare a variable to hold the contents of
    // textBox1 as an argument for the stored
    // procedure.
    string param = textBox1.Text;
    
    // Declare a variable to hold the results
    // returned by the stored procedure.
    var custquery = db.CustOrdersDetail(Convert.ToInt32(param));
    
    // Execute the stored procedure and display the results.
    string msg = "";
    foreach (CustOrdersDetailResult custOrdersDetail in custquery)
    {
        msg = msg + custOrdersDetail.ProductName + "\n";
    }
    if (msg == "")
        msg = "No results.";
    MessageBox.Show(msg);
    
    // Clear the variables before continuing.
    param = "";
    textBox1.Text = "";
    
  3. Sekarang klik dua kali button2 pada Form1 untuk membuka handler button2

  4. Ketik kode berikut ke dalam penangan button2:

    // Comments in the code for button2 are the same
    // as for button1.
    string param = textBox2.Text;
    
    var custquery = db.CustOrderHist(param);
    
    string msg = "";
    foreach (CustOrderHistResult custOrdHist in custquery)
    {
        msg = msg + custOrdHist.ProductName + "\n";
    }
    MessageBox.Show(msg);
    
    param = "";
    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

  1. Tekan F5 untuk mulai penelusuran kesalahan.

    Form1 muncul.

  2. 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.

  3. Dalam kotak Masukkan CustomerID, ketik ALFKI, lalu klik Riwayat Pesanan.

    Kotak pesan muncul yang mencantumkan riwayat pesanan untuk ALFKI pelanggan.

    Klik OK untuk menutup kotak dialog.

  4. Dalam kotak Masukkan OrderID, ketik 123, lalu klik Rincian Pesanan.

    Kotak pesan muncul yang menampilkan "Tidak ada hasil."

    Klik OK untuk menutup kotak dialog.

  5. Pada menu Debug, klik Hentikan penelusuran kesalahan.

    Sesi debug ditutup.

  6. 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.

Lihat juga