Bagikan melalui


Panduan: Memanipulasi Data (C#)

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 dengan menggunakan Pengaturan Pengembangan Visual C#.

Prasyarat

Panduan ini membutuhkan hal-hal berikut:

  • Panduan ini menggunakan folder khusus ("c:\linqtest6") 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:\linqtest6.

  • File kode C# 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:\linqtest6\northwind.cs" /language:csharp "C:\linqtest6\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. 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 Konsol.

  4. Di kotak Nama, ketik LinqDataManipulationApp.

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

  6. 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, 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. Tambahkan arahan berikut di bagian atas Program.cs:

    using System.Data.Linq;
    using 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. Di kotak dialog Tambahkan Item yang Ada, buka c:\linqtest6\northwind.cs, lalu klik Tambahkan.

    File northwind.cs ditambahkan ke proyek.

Menyiapkan Koneksi Database

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

Untuk mengatur dan menguji koneksi database

  1. Ketik atau tempel kode berikut ke dalam metode Main di kelas Program:

    // Use the following connection string.
    Northwnd db = new Northwnd(@"c:\linqtest6\northwnd.mdf");
    
    // Keep the console window open after activity stops.
    Console.ReadLine();
    
  2. Tekan F5 untuk menguji aplikasi pada saat ini.

    Jendela Konsol terbuka.

    Anda dapat menutup aplikasi dengan menekan Enter di jendela Konsol, atau dengan mengeklik Hentikan Penelusuran Kesalahan pada menu Debug Visual Studio.

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(); dalam metode Main:

    // Create the new Customer object.
    Customer newCust = new Customer();
    newCust.CompanyName = "AdventureWorks Cafe";
    newCust.CustomerID = "ADVCA";
    
    // Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust);
    
    Console.WriteLine("\nCustomers matching CA before insert");
    
    foreach (var c in db.Customers.Where(cust => cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  2. Tekan F5 untuk men-debug solusi.

  3. Tekan Enter di jendela Konsol untuk menghentikan penelusuran kesalahan dan melanjutkan penelusuran.

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();:

    // Query for specific customer.
    // First() returns one object rather than a collection.
    var existingCust =
        (from c in db.Customers
         where c.CustomerID == "ALFKI"
         select c)
        .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. Tambahkan kode berikut sebelum Console.ReadLine untuk melihat bagaimana objek dapat dihapus:

Untuk menghapus baris

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

    // Access the first element in the Orders collection.
    Order ord0 = existingCust.Orders[0];
    
    // Access the first element in the OrderDetails collection.
    OrderDetail detail0 = ord0.OrderDetails[0];
    
    // Display the order to be deleted.
    Console.WriteLine
        ("The Order Detail to be deleted is: OrderID = {0}, ProductID = {1}",
        detail0.OrderID, detail0.ProductID);
    
    // 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 benar-benar 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("\nCustomers matching CA after update");
    foreach (var c in db.Customers.Where(cust =>
        cust.CustomerID.Contains("CA")))
    {
        Console.WriteLine("{0}, {1}, {2}",
            c.CustomerID, c.CompanyName, c.Orders.Count);
    }
    
  3. Tekan F5 untuk men-debug solusi.

  4. Tekan Enter di jendela Konsol untuk menutup aplikasi.

Catatan

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

Lihat juga