Cara: Menghitung, Menjumlahkan, atau Merata-ratakan Data dengan Menggunakan LINQ (Visual Basic)
Kueri Terintegrasi Bahasa (LINQ) memudahkan untuk mengakses informasi database dan menjalankan kueri.
Contoh berikut menunjukkan cara membuat aplikasi baru yang melakukan kueri terhadap database SQL Server. Sampel menghitung, menjumlahkan, dan merata-ratakan hasil dengan menggunakan klausul Aggregate
dan Group By
. Untuk informasi selengkapnya, lihat Klausul Agregat dan Kelompokkan Menurut Klausul.
Contoh dalam topik ini menggunakan database sampel Northwind. Jika Anda tidak memiliki database ini di komputer pengembangan Anda, Anda dapat mengunduhnya dari Pusat Unduhan Microsoft. Untuk mengetahui petunjuknya, lihat Mengunduh Database Sampel.
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.
Untuk membuat koneksi ke database
Di Visual Studio, buka Penjelajah Server/Penjelajah Database dengan mengeklik Penjelajah Server/Penjelajah Database di menu Tampilan.
Klik kanan Koneksi Data di Penjelajah Server/Penjelajah Database, lalu klik Tambahkan Koneksi.
Tentukan koneksi yang valid ke database sampel Northwind.
Untuk menambahkan proyek yang berisi file LINQ ke SQL
Di Visual Studio, pada menu File, arahkan ke Baru, lalu klik Proyek. Pilih Aplikasi Formulir Windows Visual Basic sebagai jenis proyek.
Pada menu Proyek, klik Tambahkan Item Baru. Pilih templat item LINQ untuk Kelas SQL.
Beri nama file
northwind.dbml
. Klik Tambahkan. Object Relational Designer (O/R Designer) dibuka untuk file northwind.dbml.
Untuk menambahkan tabel yang dikueri ke Perancang O/R
Di Penjelajah Server/Penjelajah Database, perluas koneksi ke database Northwind. Luaskan folder Tabel.
Jika Anda telah menutup O/R Designer, Anda dapat membukanya kembali dengan mengeklik dua kali file northwind.dbml yang Anda tambahkan sebelumnya.
Klik tabel Pelanggan dan seret ke panel kiri desainer. Klik tabel Urutan dan seret ke panel kiri desainer.
Perancang membuat objek
Customer
danOrder
baru untuk proyek Anda. Perhatikan bahwa perancang secara otomatis mendeteksi hubungan antara tabel dan membuat properti anak untuk objek terkait. Misalnya, IntelliSense akan menunjukkan bahwa objekCustomer
memiliki propertiOrders
untuk semua pesanan yang terkait dengan pelanggan tersebut.Simpan perubahan Anda dan tutup perancang.
Simpan proyek Anda.
Untuk menambahkan kode guna mengkueri database dan menampilkan hasilnya
Dari Kotak Alat, seret kontrol DataGridView ke formulir Windows default untuk proyek Anda, Form1.
Klik dua kali Formulir1 untuk menambahkan kode peristiwa
Load
dari formulir.Saat Anda menambahkan tabel ke Designer O/R, designer menambahkan objek DataContext untuk proyek Anda. Objek ini berisi kode yang harus Anda miliki untuk mengakses tabel tersebut, dan untuk mengakses objek individual serta koleksi untuk setiap tabel. Objek DataContext untuk proyek Anda dinamai berdasarkan nama file .dbml Anda. Untuk proyek ini, objek DataContext diberi nama
northwindDataContext
.Anda dapat membuat instans DataContext dalam kode Anda dan mengkueri tabel yang ditentukan oleh O/R Designer.
Tambahkan kode berikut ke peristiwa
Load
untuk mengkueri tabel yang dipaparkan sebagai properti DataContext Anda dan menghitung, menjumlahkan, serta merata-ratakan hasilnya. Sampel menggunakan klausulAggregate
untuk mengkueri satu hasil, dan klausulGroup By
untuk memperlihatkan rata-rata untuk hasil yang dikelompokkan.Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity 'Another way to grab the count and sum londonCustomerCount = (From cust in db.Customers Where cust.City = "London").Count() venezuelaTotalOrders = (From cust in db.Customers Where cust.Country = "Venezuela" Select cust.Orders).Sum()
Tekan F5 untuk menjalankan proyek Anda dan menampilkan hasilnya.