Delen via


Overzicht: alleen opgeslagen procedures gebruiken (Visual Basic)

Deze procedure biedt een eenvoudig end-to-end LINQ-naar-SQL-scenario voor toegang tot gegevens door alleen opgeslagen procedures te gebruiken. Deze methode wordt vaak gebruikt door databasebeheerders om te beperken hoe het gegevensarchief wordt geopend.

Notitie

U kunt ook opgeslagen procedures in LINQ gebruiken voor SQL-toepassingen om standaardgedrag te overschrijven, met name voor Create, Updateen Delete processen. Zie Invoegen, Bijwerken en Verwijderen aanpassen voor meer informatie.

Voor deze procedure gebruikt u twee methoden die zijn toegewezen aan opgeslagen procedures in de Northwind-voorbeelddatabase: CustOrdersDetail en CustOrderHist. De toewijzing vindt plaats wanneer u het opdrachtregelprogramma SqlMetal uitvoert om een Visual Basic-bestand te genereren. Zie de sectie Vereisten verderop in dit scenario voor meer informatie.

Deze procedure is niet afhankelijk van de relationele ontwerpfunctie voor objecten. Ontwikkelaars die Visual Studio gebruiken, kunnen ook de O/R Designer gebruiken om opgeslagen procedurefunctionaliteit te implementeren. Zie LINQ naar SQL Tools in Visual Studio.

Notitie

Mogelijk worden op uw computer verschillende namen of locaties weergegeven voor sommige elementen van de Visual Studio-gebruikersinterface in de volgende instructies. De Visual Studio-editie die u hebt en de instellingen die u gebruikt, bepalen deze elementen. Zie Personalizing the IDE (Personalizing the IDE) voor meer informatie.

Deze procedure is geschreven met behulp van Visual Basic Development Instellingen.

Vereisten

Voor dit scenario is het volgende vereist:

  • In dit scenario wordt gebruikgemaakt van een toegewezen map ('c:\linqtest3') voor het opslaan van bestanden. Maak deze map voordat u met de procedure begint.

  • De Northwind-voorbeelddatabase.

    Als u deze database niet op uw ontwikkelcomputer hebt, kunt u deze downloaden van de Microsoft-downloadsite. Zie Voorbeelddatabases downloaden voor instructies. Nadat u de database hebt gedownload, kopieert u het northwnd.mdf bestand naar de map c:\linqtest3.

  • Een Visual Basic-codebestand dat is gegenereerd op basis van de Northwind-database.

    Deze procedure is geschreven met behulp van het hulpprogramma SqlMetal met de volgende opdrachtregel:

    sqlmetal /code:"c:\linqtest3\northwind.vb" /language:vb "c:\linqtest3\northwnd.mdf" /sprocs /functions /pluralize

    Zie SqlMetal.exe (hulpprogramma voor het genereren van code) voor meer informatie.

Overzicht

Deze procedure bestaat uit zes hoofdtaken:

  • De LINQ instellen op een SQL-oplossing in Visual Studio.

  • De System.Data.Linq-assembly toevoegen aan het project.

  • Voeg het databasecodebestand toe aan het project.

  • Een verbinding met de database maken.

  • De gebruikersinterface instellen.

  • De toepassing uitvoeren en testen.

Een LINQ maken naar SQL-oplossing

In deze eerste taak maakt u een Visual Studio-oplossing die de benodigde verwijzingen bevat om een LINQ te bouwen en uit te voeren naar een SQL-project.

Een LINQ naar SQL-oplossing maken

  1. Klik in het menu Visual Studio-bestand op Nieuw project.

  2. Vouw Visual Basic uit in het deelvenster Projecttypen in het dialoogvenster Nieuw project en klik op Windows.

  3. Klik in het deelvenster Sjablonen op Windows Forms-toepassing.

  4. Typ SprocOnlyApp in het vak Naam.

  5. Klik op OK.

    De Ontwerpfunctie voor Windows Forms wordt geopend.

Naslaginformatie over de LINQ toevoegen aan SQL Assembly

De LINQ naar SQL-assembly is niet opgenomen in de standaardsjabloon voor Windows Forms-toepassingen. U moet de assembly zelf toevoegen, zoals wordt uitgelegd in de volgende stappen:

System.Data.Linq.dll toevoegen

  1. Klik in Solution Explorer op Alle bestanden weergeven.

  2. Klik in Solution Explorer met de rechtermuisknop op Verwijzingen en klik vervolgens op Verwijzing toevoegen.

  3. Klik in het dialoogvenster Verwijzing toevoegen op .NET, klik op de assembly System.Data.Linq en klik vervolgens op OK.

    De assembly wordt toegevoegd aan het project.

Het Northwind-codebestand toevoegen aan het project

In deze stap wordt ervan uitgegaan dat u het hulpprogramma SqlMetal hebt gebruikt om een codebestand te genereren uit de Northwind-voorbeelddatabase. Zie de sectie Vereisten eerder in dit scenario voor meer informatie.

Het northwind-codebestand toevoegen aan het project

  1. Klik in het menu Project op Bestaand item toevoegen.

  2. Ga in het dialoogvenster Bestaand item toevoegen naar c:\linqtest3\northwind.vb en klik vervolgens op Toevoegen.

    Het northwind.vb-bestand wordt toegevoegd aan het project.

Een database maken Verbinding maken ion

In deze stap definieert u de verbinding met de Northwind-voorbeelddatabase. In dit scenario wordt 'c:\linqtest3\northwnd.mdf' als pad gebruikt.

De databaseverbinding maken

  1. Klik in Solution Explorer met de rechtermuisknop op Form1.vb en klik vervolgens op Code weergeven.

    Class Form1 wordt weergegeven in de code-editor.

  2. Typ de volgende code in het Form1 codeblok:

    Dim db As New Northwnd("c:\linqtest3\northwnd.mdf")
    

De gebruikersinterface instellen

In deze taak maakt u een interface zodat gebruikers opgeslagen procedures kunnen uitvoeren om toegang te krijgen tot gegevens in de database. In de toepassing die u met deze procedure ontwikkelt, hebben gebruikers alleen toegang tot gegevens in de database met behulp van de opgeslagen procedures die zijn ingesloten in de toepassing.

De gebruikersinterface instellen

  1. Ga terug naar Windows Forms Designer (Form1.vb[Ontwerp]).

  2. Klik in het menu Beeld op Werkset.

    De werkset wordt geopend.

    Notitie

    Klik op de punaise AutoHide om de werkset open te houden terwijl u de resterende stappen in deze sectie uitvoert.

  3. Sleep twee knoppen, twee tekstvakken en twee labels van de werkset naar Form1.

    Rangschik de besturingselementen zoals in de bijbehorende afbeelding. Vouw Form1 uit zodat de besturingselementen eenvoudig passen.

  4. Klik met de rechtermuisknop op Label1 en klik vervolgens op Eigenschappen.

  5. Wijzig de eigenschap Tekst van Label1 in OrderID invoeren:.

  6. Wijzig op dezelfde manier voor Label2 de eigenschap Text van Label2 in Enter CustomerID:.

  7. Wijzig op dezelfde manier de eigenschap Tekst voor Button1 in Orderdetails.

  8. Wijzig de eigenschap Tekst voor Button2 in Ordergeschiedenis.

    Verbreed de knopbesturingselementen zodat alle tekst zichtbaar is.

Klikken op knop afhandelen

  1. Dubbelklik op Ordergegevens op Form1 om de Button1 gebeurtenis-handler te maken en de code-editor te openen.

  2. Typ de volgende code in de Button1 handler:

    ' Declare a variable to hold the contents of
    ' TextBox1 as an argument for the stored
    ' procedure.
    Dim parm As String = TextBox1.Text
    
    ' Declare a variable to hold the results returned
    ' by the stored procedure.
    Dim custQuery = db.CustOrdersDetail(parm)
    
    ' Clear the message box of previous results.
    Dim msg As String = ""
    Dim response As MsgBoxResult
    
    ' Execute the stored procedure and store the results.
    For Each custOrdersDetail As CustOrdersDetailResult In custQuery
        msg &= custOrdersDetail.ProductName & vbCrLf
    Next
    
    ' Display the results.
    If msg = "" Then
        msg = "No results."
    End If
    response = MsgBox(msg)
    
    ' Clear the variables before continuing.
    parm = ""
    TextBox1.Text = ""
    
  3. Dubbelklik nu op Button2 op Form1 om de Button2 gebeurtenis-handler te maken en de code-editor te openen.

  4. Typ de volgende code in de Button2 handler:

    ' Comments in the code for Button2 are the same
    ' as for Button1.
    Dim parm As String = TextBox2.Text
    
    Dim custQuery2 = db.CustOrderHist(parm)
    Dim msg As String = ""
    Dim response As MsgBoxResult
    
    For Each custOrdHist As CustOrderHistResult In custQuery2
        msg &= custOrdHist.ProductName & vbCrLf
    Next
    
    If msg = "" Then
        msg = "No results."
    End If
    
    response = MsgBox(msg)
    parm = ""
    TextBox2.Text = ""
    

De toepassing testen

Nu is het tijd om uw toepassing te testen. Houd er rekening mee dat uw contactpersoon met het gegevensarchief beperkt is tot de acties die door de twee opgeslagen procedures kunnen worden uitgevoerd. Deze acties zijn het retourneren van de producten die zijn opgenomen voor elke order-id die u invoert, of om een geschiedenis van producten te retourneren die zijn besteld voor elke klant-id die u invoert.

De toepassing testen

  1. Druk op F5 om de foutopsporing te starten.

    Formulier1 wordt weergegeven.

  2. Typ 10249 in het vak Order-id invoeren en klik vervolgens op Ordergegevens.

    Een berichtenvak bevat de producten die zijn opgenomen in bestelling 10249.

    Klik op OK om het berichtvak te sluiten.

  3. Typ en klik in het vak CustomerID invoeren op OrdergeschiedenisALFKI.

    Een berichtvak bevat de bestelgeschiedenis voor klant ALFKI.

    Klik op OK om het berichtvak te sluiten.

  4. Typ en klik in het vak 123Order-id invoeren op Ordergegevens.

    In een berichtvak wordt 'Geen resultaten' weergegeven.

    Klik op OK om het berichtvak te sluiten.

  5. Klik in het menu Foutopsporing op Foutopsporing stoppen.

    De foutopsporingssessie wordt gesloten.

  6. Als u klaar bent met experimenteren, klikt u op Project sluiten in het menu Bestand en slaat u het project op wanneer u hierom wordt gevraagd.

Volgende stappen

U kunt dit project verbeteren door enkele wijzigingen aan te brengen. U kunt bijvoorbeeld beschikbare opgeslagen procedures weergeven in een keuzelijst en de gebruiker laten selecteren welke procedures moeten worden uitgevoerd. U kunt ook de uitvoer van de rapporten streamen naar een tekstbestand.

Zie ook