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 Select
mendeklarasikan 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.
Sumber daya terkait
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: Memanggil Prosedur Tersimpan
Cara: Mengubah Data dalam Database
Cara: Menggabungkan Data dengan Gabungan
Cara: Menghitung, Menjumlahkan, atau Membuat Rata-Rata Data
Cara: Menemukan Nilai Minimum atau Maksimum dalam Hasil Kueri
Bab buku unggulan
Bab 17: LINQ dalam Pemrograman Visual Basic 2008
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk