Bagikan melalui


Panduan: Memanipulasi Data (Visual Basic)

Panduan ini menyediakan skenario LINQ to SQL end-to-end yang mendasar untuk menambahkan, memodifikasi, dan menghapus data dalam database. Anda akan menggunakan salinan sampel database Northwind untuk menambahkan pelanggan, mengubah nama pelanggan, dan menghapus pesanan.

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:\linqtest2") 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:\linqtest2.

  • File kode Visual Basic yang dihasilkan dari database Northwind.

    Anda dapat membuat file ini dengan menggunakan Object Relational Designer atau alat SQLMetal. Panduan ini ditulis dengan menggunakan alat SQLMetal dengan baris perintah berikut:

    sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize

    Untuk informasi selengkapnya, lihat SqlMetal.exe (Alat Pembuatan Kode).

Gambaran Umum

Panduan ini terdiri atas enam tugas utama:

  • Membuat solusi LINQ to SQL di Visual Studio.

  • Menambahkan file kode database ke proyek.

  • Membuat objek pelanggan baru.

  • Mengubah nama kontak pelanggan.

  • Menghapus pesanan.

  • Mengirimkan perubahan ini ke database Northwind.

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. Pada menu File Visual Studio, klik Proyek Baru.

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

  3. Di panel Template, klik Aplikasi Konsol.

  4. Di kotak Nama, ketik LinqDataManipulationApp.

  5. Klik OK.

Menambahkan Referensi dan Arahan LINQ

Panduan ini menggunakan rakitan yang mungkin tidak diinstal secara default di proyek Anda. Jika System.Data.Linq tidak terdaftar sebagai referensi dalam proyek Anda (klik Tampilkan Semua File di Penjelajah Solusi dan luaskan node Referensi), lalu tambahkan, seperti yang dijelaskan dalam langkah-langkah berikut.

Untuk menambahkan System.Data.Linq

  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.

  3. Di editor kode, tambahkan arahan berikut di atas Module1:

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    
    

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, navigasikan ke c:\linqtest2\northwind.vb, lalu klik Tambahkan.

    File northwind.vb ditambahkan ke proyek.

Menyiapkan Koneksi Database

Pertama, uji koneksi Anda ke database. Perlu diperhatikan khususnya bahwa nama database, Northwnd, tidak memiliki karakter i. Jika Anda menghasilkan kesalahan di langkah berikutnya, tinjau file northwind.vb untuk menentukan bagaimana kelas parsial Northwind dieja.

Untuk mengatur dan menguji koneksi database

  1. Ketik atau tempel kode berikut ke dalam Sub Main:

    ' Use a connection string, but connect to
    '     the temporary copy of the database.
    Dim db As New Northwnd _
        ("C:\linqtest2\northwnd.mdf")
    
    ' Keep the console window open after activity stops.
    Console.ReadLine()
    
  2. Tekan F5 untuk menguji aplikasi pada saat ini.

    Jendela Konsol terbuka.

    Tutup aplikasi dengan menekan Enter di jendela Konsol, atau dengan mengeklik Stop Penelusuran Kesalahan pada menu Visual Studio Debug.

Membuat Entitas Baru

Membuat entitas baru sangatlah mudah. Anda dapat membuat objek (seperti Customer) dengan menggunakan kata kunci New.

Di bagian ini dan berikutnya, Anda hanya membuat perubahan pada cache lokal. Tidak akan ada perubahan yang dikirim ke database hingga Anda memanggil SubmitChanges di akhir panduan ini.

Untuk menambahkan objek entitas Pelanggan baru

  1. Buat Customer baru dengan menambahkan kode berikut sebelum Console.ReadLine di Sub Main:

    ' Create the new Customer object.
    Dim newCust As New Customer()
    newCust.CompanyName = "AdventureWorks Cafe"
    newCust.CustomerID = "A3VCA"
    
    ' Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust)
    
    Console.WriteLine("Customers matching CA before insert:")
    
    Dim custQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In custQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  2. Tekan F5 untuk men-debug solusi.

    Hasil yang ditampilkan di jendela konsol adalah sebagai berikut:

    Customers matching CA before insert:

    Customer ID: CACTU

    Customer ID: RICAR

    Perhatikan bahwa baris baru tidak muncul di hasil. Data baru belum masuk ke database.

  3. Tekan Enter di jendela Konsol untuk menghentikan proses debug.

Memperbarui Entitas

Dalam langkah-langkah berikut, Anda akan mengambil objek Customer dan memodifikasi salah satu propertinya.

Untuk mengubah nama Pelanggan

  • Tambahkan kode berikut di atas Console.ReadLine():

    Dim existingCust = _
        (From cust In db.Customers _
         Where cust.CustomerID = "ALFKI" _
         Select cust).First()
    
    ' Change the contact name of the customer.
    existingCust.ContactName = "New Contact"
    

Menghapus Entitas

Menggunakan objek pelanggan yang sama, Anda dapat menghapus pesanan pertama.

Kode berikut menunjukkan cara memutuskan hubungan antar baris, dan cara menghapus baris dari database.

Untuk menghapus baris

  • Tambahkan kode berikut tepat di atas Console.ReadLine():

    ' Access the first element in the Orders collection.
    Dim ord0 As Order = existingCust.Orders(0)
    
    ' Access the first element in the OrderDetails collection.
    Dim detail0 As OrderDetail = ord0.OrderDetails(0)
    
    ' Display the order to be deleted.
    Console.WriteLine _
        (vbCrLf & "The Order Detail to be deleted is: OrderID = " _
        & detail0.OrderID)
    
    ' Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0)
    

Mengirimkan Perubahan ke Database

Langkah terakhir yang diperlukan untuk membuat, memperbarui, dan menghapus objek adalah dengan mengirimkan perubahan ke database. Tanpa langkah ini, perubahan Anda hanya bersifat lokal dan tidak akan muncul di hasil kueri.

Untuk mengirimkan perubahan ke database

  1. Masukkan kode berikut tepat di atas Console.ReadLine:

    db.SubmitChanges()
    
  2. Masukkan kode berikut (setelah SubmitChanges) untuk menunjukkan efek sebelum dan sesudah mengirimkan perubahan:

    Console.WriteLine(vbCrLf & "Customers matching CA after update:")
    Dim finalQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In finalQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  3. Tekan F5 untuk men-debug solusi.

    Jendela konsol muncul sebagai berikut:

    Customers matching CA before update:  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
    The Order Detail to be deleted is: OrderID = 10643  
    
    Customers matching CA after update:  
    Customer ID: A3VCA  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
  4. Tekan Enter di jendela Konsol untuk menghentikan proses debug.

Catatan

Setelah menambahkan pelanggan baru dengan mengirimkan perubahan, Anda tidak dapat menjalankan solusi ini lagi apa adanya, karena Anda tidak dapat menambahkan pelanggan yang sama lagi apa adanya. Untuk mengeksekusi solusi lagi, ubah nilai ID pelanggan yang akan ditambahkan.

Lihat juga