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>
<movie year_released="1977" director="George Lucas">Star Wars</movie>
& Lt; film year_released = "1980" regissør = "John Boorman"> Excalibur & lt; / film>
</ My_movies>
Dim query = _
From m In myMovies.<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").