Bagikan melalui


Pengantar LINQ di Visual Basic

Kueri Terintegrasi Bahasa (LINQ) menambahkan kemampuan kueri ke Visual Basic dan memberikan kemampuan sederhana dan kuat saat Anda bekerja dengan semua jenis data. Alih-alih mengirim kueri ke database untuk diproses, atau bekerja dengan sintaks kueri yang berbeda untuk setiap jenis data yang Anda cari, LINQ memperkenalkan kueri sebagai bagian dari bahasa Visual Basic. LINQ menggunakan sintaks terpadu terlepas dari jenis data.

LINQ memungkinkan Anda untuk mengkueri data dari database SQL Server, XML, array dan koleksi dalam memori, himpunan data ADO.NET, atau sumber data jarak jauh atau lokal lainnya yang mendukung LINQ. Anda dapat melakukan semua ini dengan elemen bahasa Visual Basic umum. Karena kueri Anda ditulis dalam bahasa Visual Basic, hasil kueri Anda dikembalikan sebagai objek yang diketik dengan kuat. Objek-objek ini mendukung IntelliSense, yang memungkinkan Anda menulis kode lebih cepat dan menangkap kesalahan dalam kueri Anda pada waktu kompilasi, bukan pada waktu yang dijalankan. Kueri LINQ dapat digunakan sebagai sumber kueri tambahan untuk menyempurnakan hasil. Mereka juga dapat terikat pada kontrol sehingga pengguna dapat dengan mudah melihat dan memodifikasi hasil kueri Anda.

Misalnya, contoh kode berikut menunjukkan kueri LINQ yang mengembalikan daftar pelanggan dari koleksi dan mengelompokkannya berdasarkan lokasi mereka.

' Obtain a list of customers.
Dim customers As List(Of Customer) = GetCustomers()

' Return customers that are grouped based on country.
Dim countries = From cust In customers
                Order By cust.Country, cust.City
                Group By CountryName = cust.Country
                Into CustomersInCountry = Group, Count()
                Order By CountryName

' Output the results.
For Each country In countries
    Debug.WriteLine(country.CountryName & " count=" & country.Count)

    For Each customer In country.CustomersInCountry
        Debug.WriteLine("   " & customer.CompanyName & "  " & customer.City)
    Next
Next

' Output:
'   Canada count=2
'      Contoso, Ltd  Halifax
'      Fabrikam, Inc.  Vancouver
'   United States count=1
'      Margie's Travel  Redmond

Menjalankan contoh

Untuk menjalankan contoh dalam pengenalan dan di bagian Struktur Kueri LINQ, sertakan kode berikut, yang mengembalikan daftar pelanggan dan pesanan.

' Return a list of customers.
Private Function GetCustomers() As List(Of Customer)
    Return New List(Of Customer) From
        {
            New Customer With {.CustomerID = 1, .CompanyName = "Contoso, Ltd", .City = "Halifax", .Country = "Canada"},
            New Customer With {.CustomerID = 2, .CompanyName = "Margie's Travel", .City = "Redmond", .Country = "United States"},
            New Customer With {.CustomerID = 3, .CompanyName = "Fabrikam, Inc.", .City = "Vancouver", .Country = "Canada"}
        }
End Function

' Return a list of orders.
Private Function GetOrders() As List(Of Order)
    Return New List(Of Order) From
        {
            New Order With {.CustomerID = 1, .Amount = "200.00"},
            New Order With {.CustomerID = 3, .Amount = "600.00"},
            New Order With {.CustomerID = 1, .Amount = "300.00"},
            New Order With {.CustomerID = 2, .Amount = "100.00"},
            New Order With {.CustomerID = 3, .Amount = "800.00"}
        }
End Function

' Customer Class.
Private Class Customer
    Public Property CustomerID As Integer
    Public Property CompanyName As String
    Public Property City As String
    Public Property Country As String
End Class

' Order Class.
Private Class Order
    Public Property CustomerID As Integer
    Public Property Amount As Decimal
End Class

Penyedia LINQ

Penyedia LINQ memetakan kueri LINQ Visual Basic Anda ke sumber data yang sedang dikueri. Saat Anda menulis kueri LINQ, penyedia mengambil kueri itu dan menerjemahkannya ke dalam perintah yang dapat dijalankan oleh sumber data. Penyedia juga mengonversi data dari sumber ke objek yang membentuk hasil kueri Anda. Akhirnya, penyedia mengubah objek menjadi data saat Anda mengirim pembaruan ke sumber data.

Visual Basic mencakup penyedia LINQ berikut.

Penyedia Deskripsi
LINQ ke Objek Penyedia LINQ ke Objek memungkinkan Anda untuk mengkueri koleksi dan array dalam memori. Jika objek mendukung antarmuka IEnumerable atau IEnumerable<T>, penyedia LINQ ke Objek memungkinkan Anda untuk mengkuerinya.

Anda dapat mengaktifkan LINQ ke penyedia Objek dengan mengimpor namespace System.Linq, yang diimpor secara default untuk semua proyek Visual Basic.

Untuk informasi selengkapnya tentang penyedia LINQ ke Objek, lihat LINQ ke Objek.
LINQ ke SQL Penyedia LINQ ke SQL memungkinkan Anda untuk mengkueri dan mengubah data dalam database SQL Server. Hal ini memudahkan untuk memetakan model objek untuk aplikasi ke tabel dan objek dalam database.

Visual Basic membuatnya lebih mudah untuk bekerja dengan LINQ ke SQL dengan memasukkan Object Relational Designer (O/R Designer). Perancang ini digunakan untuk membuat model objek dalam aplikasi yang memetakan objek dalam database. O/R Designer juga menyediakan fungsionalitas untuk memetakan prosedur dan fungsi tersimpan ke objek DataContext, yang mengelola komunikasi dengan database dan menyimpan status untuk pemeriksaan konkurensi optimis.

Untuk informasi selengkapnya tentang penyedia LINQ ke SQL, lihat LINQ ke SQL. Untuk informasi selengkapnya tentang Object Relational Designer, lihat Alat LINQ ke SQL di Visual Studio.
LINQ ke XML Penyedia LINQ ke XML memungkinkan Anda untuk mengkueri dan mengubah XML. Anda dapat memodifikasi XML dalam memori, atau Anda dapat memuat XML dari file dan menyimpan XML ke file.

Selain itu, penyedia LINQ ke XML memungkinkan literal XML dan properti sumbu XML yang memungkinkan Anda menulis XML langsung dalam kode Visual Basic Anda. Untuk informasi selengkapnya, lihat XML.
LINQ ke DataSet Penyedia LINQ ke Himpunan Data memungkinkan Anda untuk mengkueri dan memperbarui data dalam himpunan data ADO.NET. Anda dapat menambahkan kekuatan LINQ ke aplikasi yang menggunakan himpunan data untuk menyederhanakan dan memperluas kemampuan Anda untuk mengkueri, menggabungkan, dan memperbarui data dalam himpunan data Anda.

Untuk informasi selengkapnya, lihat LINQ ke Himpunan Data.

Struktur kueri LINQ

Kueri LINQ, sering disebut sebagai ekspresi kueri, terdiri dari kombinasi klausul kueri yang mengidentifikasi sumber data dan variabel perulangan untuk kueri. Ekspresi kueri juga dapat menyertakan instruksi untuk menyortir, memfilter, mengelompokkan, dan menggabungkan, atau perhitungan untuk diterapkan ke data sumber. Sintaks ekspresi kueri menyerupai sintaks SQL; oleh karena itu, Anda mungkin menemukan banyak sintaks yang dikenal.

Ekspresi kueri dimulai dengan klausul From. Klausul ini mengidentifikasi data sumber untuk kueri dan variabel yang digunakan untuk merujuk ke setiap elemen data sumber secara individual. Variabel ini diberi nama variabel rentang atau variabel perulangan. Klausul From diperlukan untuk kueri, kecuali untuk kueri Aggregate, di mana klausul From bersifat opsional. Setelah cakupan dan sumber kueri diidentifikasi dalam klausul From atau Aggregate, Anda bisa menyertakan kombinasi klausul kueri apa pun untuk memperbaiki kueri. Untuk detail tentang klausul kueri, lihat Operator Kueri LINQ Visual Basic nanti dalam topik ini. Misalnya, kueri berikut mengidentifikasi kumpulan sumber dari data pelanggan sebagai variabel customers, dan variabel perulangan bernama cust.

Dim customers = GetCustomers()

Dim queryResults = From cust In customers

For Each result In queryResults
    Debug.WriteLine(result.CompanyName & "  " & result.Country)
Next

' Output:
'   Contoso, Ltd  Canada
'   Margie's Travel  United States
'   Fabrikam, Inc.  Canada

Contoh ini adalah kueri yang valid dengan sendirinya; namun, kueri menjadi jauh lebih kuat ketika Anda menambahkan lebih banyak klausul kueri untuk menyempurnakan hasilnya. Misalnya, Anda dapat menambahkan klausul Where untuk memfilter hasilnya menurut satu atau beberapa nilai. Ekspresi kueri adalah satu baris kode; Anda cukup menambahkan klausul kueri tambahan ke akhir kueri. Anda dapat memecah kueri di beberapa baris teks untuk meningkatkan keterbacaan dengan menggunakan karakter kelanjutan baris garis bawah (_). Contoh kode berikut menunjukkan contoh kueri yang menyertakan klausul Where.

Dim queryResults = From cust In customers
                   Where cust.Country = "Canada"

Klausul kueri kuat lainnya adalah klausul Select, yang memungkinkan Anda mengembalikan hanya bidang yang dipilih dari sumber data. Kueri LINQ mengembalikan koleksi objek yang dapat dihitung dengan kuat. Kueri dapat mengembalikan kumpulan jenis anonim atau jenis bernama. Anda dapat menggunakan klausul Select untuk mengembalikan hanya satu bidang dari sumber data. Ketika Anda melakukan ini, jenis koleksi yang dikembalikan adalah jenis bidang tunggal tersebut. Anda dapat menggunakan klausul Select untuk mengembalikan hanya satu bidang dari sumber data. Ketika Anda melakukan ini, jenis koleksi yang dikembalikan adalah jenis anonim baru. Anda juga dapat mencocokkan bidang yang dikembalikan oleh kueri ke bidang jenis bernama tertentu. Contoh kode berikut menampilkan ekspresi kueri yang mengembalikan kumpulan jenis anonim yang memiliki anggota yang diisi dengan data dari bidang yang dipilih dari sumber data.

Dim queryResults = From cust In customers
               Where cust.Country = "Canada"
               Select cust.CompanyName, cust.Country

Kueri LINQ juga dapat digunakan untuk menggabungkan beberapa sumber data dan mengembalikan hasil tunggal. Ini dapat dilakukan dengan satu atau beberapa klausul From, atau dengan menggunakan klausul kueri Join atau Group Join. Contoh kode berikut menunjukkan ekspresi kueri yang menggabungkan data pelanggan dan pesanan dan mengembalikan kumpulan jenis anonim yang berisi data pelanggan dan pesanan.

Dim customers = GetCustomers()
Dim orders = GetOrders()

Dim queryResults = From cust In customers, ord In orders
           Where cust.CustomerID = ord.CustomerID
           Select cust, ord

For Each result In queryResults
    Debug.WriteLine(result.ord.Amount & "  " & result.ord.CustomerID & "  " & result.cust.CompanyName)
Next

' Output:
'   200.00  1  Contoso, Ltd
'   300.00  1  Contoso, Ltd
'   100.00  2  Margie's Travel
'   600.00  3  Fabrikam, Inc.
'   800.00  3  Fabrikam, Inc.

Anda dapat menggunakan klausul Group Join untuk membuat hasil kueri hierarkis yang berisi kumpulan objek pelanggan. Setiap objek pelanggan memiliki properti yang berisi koleksi semua pesanan untuk pelanggan tersebut. Contoh kode berikut menunjukkan ekspresi kueri yang menggabungkan data pelanggan da`n pesanan sebagai hasil hierarkis dan mengembalikan kumpulan jenis anonim. Kueri mengembalikan jenis yang menyertakan properti CustomerOrders yang berisi kumpulan data pesanan untuk pelanggan. Ini juga termasuk properti OrderTotal yang berisi jumlah total untuk semua pesanan untuk pelanggan tersebut. (Kueri ini setara dengan LEFT OUTER JOIN.)

Dim customers = GetCustomers()
Dim orders = GetOrders()

Dim queryResults = From cust In customers
                   Group Join ord In orders On
                     cust.CustomerID Equals ord.CustomerID
                     Into CustomerOrders = Group,
                          OrderTotal = Sum(ord.Amount)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, OrderTotal

For Each result In queryResults
    Debug.WriteLine(result.OrderTotal & "  " & result.CustomerID & "  " & result.CompanyName)
    For Each ordResult In result.CustomerOrders
        Debug.WriteLine("   " & ordResult.Amount)
    Next
Next

' Output:
'   500.00  1  Contoso, Ltd
'      200.00
'      300.00
'   100.00  2  Margie's Travel
'      100.00
'   1400.00  3  Fabrikam, Inc.
'      600.00
'      800.00

Ada beberapa operator kueri LINQ tambahan yang dapat Anda gunakan untuk membuat ekspresi kueri yang kuat. Bagian selanjutnya dari topik ini membahas berbagai klausul kueri yang dapat Anda sertakan dalam ekspresi kueri. Untuk detail tentang klausul kueri Visual Basic, lihat Kueri.

Operator kueri LINQ Visual Basic

Kelas di namespace layanan System.Linq dan namespace layanan lain yang mendukung kueri LINQ mencakup metode yang dapat Anda panggil untuk membuat dan menyempurnakan kueri berdasarkan kebutuhan aplikasi Anda. Visual Basic menyertakan kata kunci untuk klausul kueri umum berikut. Untuk detail tentang klausul kueri Visual Basic, lihat Kueri.

Klausul From

Baik klausul From atau klausul Aggregate diperlukan untuk memulai kueri. Klausul From menentukan kumpulan sumber dan variabel perulangan untuk kueri. Contohnya:

' Returns the company name for all customers for which
' the Country is equal to "Canada".
Dim names = From cust In customers
            Where cust.Country = "Canada"
            Select cust.CompanyName

Klausul Select

Opsional. Klausul Selectmendeklarasikan satu set variabel perulangan untuk kueri. Contohnya:

' Returns the company name and ID value for each
' customer as a collection of a new anonymous type.
Dim customerList = From cust In customers
                   Select cust.CompanyName, cust.CustomerID

Jika klausul Select tidak ditentukan, variabel perulangan untuk kueri terdiri dari variabel perulangan yang ditentukan oleh klausul From atau Aggregate.

Klausul Where

Opsional. Klausul Where menentukan kondisi pemfilteran untuk kueri. Contohnya:

' Returns all product names for which the Category of
' the product is "Beverages".
Dim names = From product In products
            Where product.Category = "Beverages"
            Select product.Name

Klausul Order By

Opsional. Klausul Order By menentukan urutan pengurutan untuk kolom dalam kueri. Contohnya:

' Returns a list of books sorted by price in 
' ascending order.
Dim titlesAscendingPrice = From b In books
                           Order By b.price

Klausul Join

Opsional. Klausul Join menggabungkan dua koleksi ke dalam satu koleksi. Contohnya:

' Returns a combined collection of all of the 
' processes currently running and a descriptive
' name for the process taken from a list of 
' descriptive names.
Dim processes = From proc In Process.GetProcesses
                Join desc In processDescriptions
                  On proc.ProcessName Equals desc.ProcessName
                Select proc.ProcessName, proc.Id, desc.Description

Klausul Group By

Opsional. Klausul Group By mengelompokkan elemen hasil kueri. Klausul ini dapat digunakan untuk menerapkan fungsi agregat ke setiap grup. Contohnya:

' Returns a list of orders grouped by the order date
' and sorted in ascending order by the order date.
Dim orderList = From order In orders
                Order By order.OrderDate
                Group By OrderDate = order.OrderDate
                Into OrdersByDate = Group

Klausul Group Join

Opsional. Klausul Group Join menggabungkan dua koleksi ke dalam satu koleksi hierarkis. Contohnya:

' Returns a combined collection of customers and
' customer orders.
Dim customerList = From cust In customers
                   Group Join ord In orders On
                     cust.CustomerID Equals ord.CustomerID
                   Into CustomerOrders = Group,
                        TotalOfOrders = Sum(ord.Amount)
                   Select cust.CompanyName, cust.CustomerID,
                          CustomerOrders, TotalOfOrders

Klausul Aggregate

Baik klausul Aggregate atau klausul From diperlukan untuk memulai kueri. Klausa Aggregate menerapkan satu atau beberapa fungsi agregat ke koleksi. Misalnya, Anda dapat menggunakan klausul Aggregate untuk menghitung jumlah untuk semua elemen yang dikembalikan oleh kueri, seperti contoh berikut.

' Returns the sum of all order amounts.
Dim orderTotal = Aggregate order In orders
                 Into Sum(order.Amount)

Anda juga bisa menggunakan klausul Aggregate untuk mengubah kueri. Misalnya, Anda dapat menggunakan klausul Aggregate untuk melakukan penghitungan pada kumpulan kueri terkait. Contohnya:

' Returns the customer company name and largest 
' order amount for each customer.
Dim customerMax = From cust In customers
                  Aggregate order In cust.Orders
                  Into MaxOrder = Max(order.Amount)
                  Select cust.CompanyName, MaxOrder

Klausul Let

Opsional. Klausul Let menghitung nilai dan menetapkannya ke variabel baru dalam kueri. Contohnya:

' Returns a list of products with a calculation of
' a ten percent discount.
Dim discountedProducts = From prod In products
                         Let Discount = prod.UnitPrice * 0.1
                         Where Discount >= 50
                         Select prod.Name, prod.UnitPrice, Discount

Klausul Distinct

Opsional. Klausul Distinct membatasi nilai variabel iterasi saat ini untuk menghilangkan nilai duplikat dalam hasil kueri. Contohnya:

' Returns a list of cities with no duplicate entries.
Dim cities = From item In customers
             Select item.City
             Distinct

Klausul Skip

Opsional. Klausul Skip melewati sejumlah elemen yang ditentukan dalam koleksi, lalu mengembalikan elemen yang tersisa. Contohnya:

' Returns a list of customers. The first 10 customers
' are ignored and the remaining customers are
' returned.
Dim customerList = From cust In customers
                   Skip 10

Klausul Skip While

Opsional. Klausul Skip While melewati elemen dalam koleksi selama kondisi yang ditentukan adalah true lalu mengembalikan elemen yang tersisa. Contohnya:

' Returns a list of customers. The query ignores all
' customers until the first customer for whom
' IsSubscriber returns false. That customer and all
' remaining customers are returned.
Dim customerList = From cust In customers
                   Skip While IsSubscriber(cust)

Klausul Take

Opsional. Klausul Take mengembalikan jumlah elemen yang berdekatan yang ditentukan dari awal koleksi. Contohnya:

' Returns the first 10 customers.
Dim customerList = From cust In customers
                   Take 10

Klausul Take While

Opsional. Klausul Take While mencakup elemen dalam koleksi selama kondisi yang ditentukan adalah true lalu mengembalikan elemen yang tersisa. Contohnya:

' Returns a list of customers. The query returns
' customers until the first customer for whom 
' HasOrders returns false. That customer and all 
' remaining customers are ignored.
Dim customersWithOrders = From cust In customers
                          Order By cust.Orders.Count Descending
                          Take While HasOrders(cust)

Menggunakan fitur kueri LINQ tambahan

Anda dapat menggunakan fitur kueri LINQ tambahan dengan memanggil anggota jenis yang dapat disebutkan dan dapat dikueri yang disediakan oleh LINQ. Anda dapat menggunakan kemampuan tambahan ini dengan memanggil operator kueri tertentu berdasarkan hasil ekspresi kueri. Misalnya, contoh berikut menggunakan metode Enumerable.Union untuk menggabungkan hasil dua kueri menjadi satu hasil kueri. Ini menggunakan metode Enumerable.ToListuntuk mengembalikan hasil kueri sebagai daftar generik.

Public Function GetAllCustomers() As List(Of Customer)
    Dim customers1 = From cust In domesticCustomers
    Dim customers2 = From cust In internationalCustomers

    Dim customerList = customers1.Union(customers2)

    Return customerList.ToList()
End Function

Untuk detail tentang kemampuan LINQ tambahan, lihat Gambaran Umum Operator Kueri Standar.

Koneksi ke database dengan menggunakan LINQ ke SQL

Dalam Visual Basic, Anda mengidentifikasi objek database SQL Server, seperti tabel, tampilan, dan prosedur tersimpan, yang ingin Anda akses dengan menggunakan file LINQ ke SQL. File LINQ ke SQL memiliki ekstensi .dbml.

Saat Anda memiliki koneksi yang valid ke database SQL Server, Anda bisa menambahkan templat item Kelas LINQ ke SQL ke proyek Anda. Ini akan menampilkan Object Relational Designer (O/R Designer ). O/R Designer memungkinkan Anda menyeret item yang ingin Anda akses dalam kode Anda dari Penjelajah Server/Penjelajah Databaseke permukaan perancang. File LINQ ke SQL menambahkan objek DataContext ke proyek Anda. Objek ini mencakup properti dan koleksi untuk tabel dan tampilan yang ingin Anda akses, dan metode untuk prosedur tersimpan yang ingin Anda hubungi. Setelah menyimpan perubahan ke file LINQ ke SQL (.dbml), Anda dapat mengakses objek ini dalam kode Anda dengan mereferensikan objek DataContext yang ditentukan oleh O/R Designer. Objek DataContext untuk proyek Anda dinamai berdasarkan nama file LINQ ke SQL. Misalnya, file LINQ ke SQL yang bernama Northwind.dbml akan membuat objek DataContext bernama NorthwindDataContext.

Untuk contoh dengan instruksi langkah demi langkah, lihat Cara: Mengkueri Database dan Cara: Memanggil Prosedur Tersimpan.

Fitur Visual Basic yang mendukung LINQ

Visual Basic mencakup fitur penting lainnya yang membuat penggunaan LINQ sederhana dan mengurangi jumlah kode yang harus Anda tulis untuk melakukan kueri LINQ. Manfaatnya meliputi:

  • Jenis anonim, yang memungkinkan Anda membuat jenis baru berdasarkan hasil kueri.

  • Variabel yang diketik secara implisit, yang memungkinkan Anda menunda menentukan jenis dan membiarkan kompiler menyimpulkan jenis berdasarkan hasil kueri.

  • Metode ekstensi, yang memungkinkan Anda memperluas jenis yang ada dengan metode Anda sendiri tanpa memodifikasi jenis itu sendiri.

Untuk detailnya, lihat Fitur Visual Basic yang Mendukung LINQ.

Eksekusi kueri yang ditangguhkan dan segera

Eksekusi kueri terpisah dari pembuatan kueri. Setelah kueri dibuat, eksekusinya dipicu oleh mekanisme terpisah. Kueri dapat dieksekusi segera setelah ditentukan (eksekusi segera), atau definisi dapat disimpan dan kueri dapat dijalankan nanti (eksekusi yang ditangguhkan).

Secara default, saat Anda membuat kueri, kueri itu sendiri tidak langsung dijalankan. Sebagai gantinya, definisi kueri disimpan dalam variabel yang digunakan untuk mereferensikan hasil kueri. Saat variabel hasil kueri diakses nanti dalam kode, seperti dalam perulangan For…Next, kueri dijalankan. Proses ini disebut sebagai eksekusi yang ditangguhkan.

Kueri juga dapat dijalankan ketika ditentukan, yang disebut sebagai eksekusi segera. Anda dapat memicu eksekusi segera dengan menerapkan metode yang memerlukan akses ke elemen individual dari hasil kueri. Ini bisa menjadi hasil dari menyertakan fungsi agregat, seperti Count, Sum, Average, Min, atau Max. Untuk informasi selengkapnya tentang fungsi agregat, lihat Klausul Agregat.

Menggunakan metode ToList atau ToArray juga akan memaksa eksekusi segera. Ini dapat berguna ketika Anda ingin mengeksekusi kueri segera dan menyimpan hasilnya. Untuk informasi selengkapnya tentang metode ini, lihat Mengonversi Jenis Data.

Untuk informasi selengkapnya tentang eksekusi kueri, lihat Menulis Kueri LINQ Pertama Anda.

XML di Visual Basic

Fitur XML di Visual Basic termasuk literal XML dan properti sumbu XML, yang memungkinkan Anda dengan mudah untuk membuat, mengakses, mengkueri, dan mengubah XML dalam kode Anda. Literal XML memungkinkan Anda untuk menulis XML langsung dalam kode Anda. Kompiler Visual Basic memperlakukan XML sebagai objek data kelas satu.

Contoh kode berikut menunjukkan cara membuat elemen XML, mengakses sub-elemen dan atributnya, dan mengkueri konten elemen dengan menggunakan LINQ.

' Place Imports statements at the top of your program.
Imports <xmlns:ns="http://SomeNamespace">

Module Sample1

    Sub SampleTransform()

        ' Create test by using a global XML namespace prefix.

        Dim contact =
            <ns:contact>
                <ns:name>Patrick Hines</ns:name>
                <ns:phone ns:type="home">206-555-0144</ns:phone>
                <ns:phone ns:type="work">425-555-0145</ns:phone>
            </ns:contact>

        Dim phoneTypes =
          <phoneTypes>
              <%= From phone In contact.<ns:phone>
                  Select <type><%= phone.@ns:type %></type>
              %>
          </phoneTypes>

        Console.WriteLine(phoneTypes)
    End Sub

End Module

Untuk informasi selengkapnya, lihat XML.

Topik Deskripsi
XML Menjelaskan fitur XML di Visual Basic yang dapat dikueri dan yang memungkinkan Anda menyertakan XML sebagai objek data kelas satu dalam kode Visual Basic Anda.
Kueri Memberikan informasi referensi tentang klausul kueri yang tersedia di Visual Basic.
LINQ (Kueri Terintegrasi Bahasa) Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ.
LINQ ke SQL Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke SQL.
LINQ ke Objek Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke Objek.
LINQ ke ADO.NET (Halaman Portal) Termasuk tautan ke informasi umum, panduan pemrograman, dan sampel untuk LINQ ke ADO.NET.
LINQ ke XML Termasuk informasi umum, panduan pemrograman, dan sampel untuk LINQ ke XML.

Cara dan topik panduan

Cara: Mengkueri Database

Cara: Memanggil Prosedur Tersimpan

Cara: Mengubah Data dalam Database

Cara: Menggabungkan Data dengan Gabungan

Cara: Mengurutkan Hasil Kueri

Cara: Memfilter Hasil Kueri

Cara: Menghitung, Menjumlahkan, atau Membuat Rata-Rata Data

Cara: Menemukan Nilai Minimum atau Maksimum dalam Hasil Kueri

Cara: Menetapkan prosedur tersimpan untuk melakukan pembaruan, penyisipan, dan penghapusan (O/R Designer)

Bab 17: LINQ dalam Pemrograman Visual Basic 2008

Lihat juga