Visual Basic LINQ Tutorial

LINQ, som står for Språk-Integrated Query, er en funksjon av Visual Basic språket som lar deg utføre spørringer og andre operasjoner på datakilder. En type datakilde er XML-kode, som har brukerdefinerte koder kan brukes som databasefelt. Denne opplæringen gjør at brukeren kan gjøre en spørring av en enkel XML-data bord. Brukeren angir tittelen på en film, som er formatert i et LINQ spørring. Spørringen søker filmen med matchende tittelen og returnerer regissørens navn fra den matchende filmen.

Sette opp prosjektet

Før du skriver programmet, må du sette opp et prosjekt i Visual Basic. Velg Fil> Nytt prosjekt> Windows Forms Application. I Designer vinduet, plasserer en tekstboks og en knapp på brukerens form. Dobbeltklikk på knappen kontroll og legge til denne koden til kroppen av button1_click hendelsen:

XLinqQuery (TextBox1.Text)

Den uttalelsen kaller en funksjon som gjør LINQ førespurnaden når brukeren trykker på knappen på skjemaet. Over button1_click funksjon, skriver funksjonen:

Public Sub XLinqQuery(ByVal strMovie As String)

Dim myMovies = _

<My_movies>

&lt;movie year_released="1977" director="George Lucas">Star Wars&lt;/movie>

& Lt; film year_released = "1980" regissør = "John Boorman"> Excalibur & lt; / film>

</ My_movies>

Dim query = _
From m In myMovies.&lt;movie> _
Where m.Value = strMovie _
Select m

For hvert resultat i søket
TextBox2.Text = resultat. @ Direktør
neste
End Sub

Kjøre Program

Kjør programmet ved å trykke på "F5". I tekstboksen, skriv "Star Wars" og trykk på knappen. Programmet vil søke i databasen for å finne regissøren av filmen med tittelen du skrev inn. Etter å ha sett "George Lucas" vises, angi et annet filmtittel: "Excalibur", og trykk på knappen for å se regissøren John Boorman navn vises.

Utforsking av kode

Se i funksjon XlinqQuery, som gjør databasen arbeid. Mini inline databasen LINQ spørringen kjører på er en del av XML-kode. Du kan bruke LINQ til å spørre andre typer av databaser, både eksterne (online) og de som er lagret på datamaskinen.

Den faktiske LINQ

Selve LINQ spørringen er som følger:

Dim query =
Fra m I myMovies. <Film>
Hvor m.Value = strMovie _
Velg m

Selv om denne typen ikke er eksplisitt gitt, den "spørring" etter Dim-setningen er en variabel. Den komplette Dim søket setningen ikke utføre spørringen, den bare definerer det. Uttalelsen som faktisk utfører spørringen er følgende:

For hvert resultat i søket

TextBox2.Text = result.@director

neste

For hver iterasjon av denne sløyfen, har resultatet identifikator utgangen av spørringen, som er alle data mellom XML-koder <film> og </ film>, for en bestemt par av disse kodene. Den spesielle egenskapen vi trekke ut av resultatet variabelen er direktør egenskap, men du kan også velge @year_released.

Du kan lære om LINQ søk etter fiksing og triksing med dette programmet. Start med å endre filmdatabasen. Legg til flere filmer og regissører - eller endre databasen helt å reflektere dine egne interesser. Legg til dine egne felt - aka attributter - å erstatte regissøren og year_released felt fra filmen database. I stedet for å lete etter en database oppføring av navnet (for eksempel "Star Wars"), kan du søke etter felt / attributt. Hvis du søkte etter den year_released attributt i filmen databasen, ville Hvor klausul i søket se slik ut:. Hvor m @ year_released = intYear. Her forteller tegnet søket motor som du ønsker å matche på en XML-attributtet, i motsetning til en verdi (for eksempel "Star Wars").