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
Di Visual Studio, pada menu File, arahkan ke Baru, lalu klik Proyek.
Di panel Jenis proyek di kotak dialog Proyek Baru, klik Visual C#.
Di panel Template, klik Aplikasi Konsol.
Di kotak Nama, ketik LinqDataManipulationApp.
Di kotak Lokasi, verifikasi tempat Anda ingin menyimpan file proyek Anda.
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
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.
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
Pada menu Proyek, klik Tambahkan Item yang Ada.
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
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();
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
Buat
Customer
baru dengan menambahkan kode berikut sebelumConsole.ReadLine();
dalam metodeMain
:// 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); }
Tekan F5 untuk men-debug solusi.
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
Masukkan kode berikut tepat di atas
Console.ReadLine
:db.SubmitChanges();
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); }
Tekan F5 untuk men-debug solusi.
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.