Dela via


Genomgång: Använda endast lagrade procedurer (Visual Basic)

Den här genomgången innehåller ett grundläggande LINQ till SQL-scenario från slutpunkt till slutpunkt för åtkomst till data endast med hjälp av lagrade procedurer. Den här metoden används ofta av databasadministratörer för att begränsa hur datalagringen används.

Kommentar

Du kan också använda lagrade procedurer i LINQ till SQL-program för att åsidosätta standardbeteendet, särskilt för Create, Updateoch Delete processer. Mer information finns i Anpassa infognings-, uppdaterings- och borttagningsåtgärder.

I den här genomgången använder du två metoder som har mappats till lagrade procedurer i Northwind-exempeldatabasen: CustOrdersDetail och CustOrderHist. Mappningen sker när du kör kommandoradsverktyget SqlMetal för att generera en Visual Basic-fil. Mer information finns i avsnittet Förutsättningar senare i den här genomgången.

Den här genomgången förlitar sig inte på objektrelationsdesignern. Utvecklare som använder Visual Studio kan också använda O/R Designer för att implementera funktioner för lagrade procedurer. Se LINQ till SQL Tools i Visual Studio.

Kommentar

Datorn kan visa olika namn eller platser för vissa av Visual Studio-användargränssnittselementen i följande instruktioner. Den Visual Studio-utgåva som du har och de inställningar som du använder avgör dessa element. Mer information finns i Anpassa IDE.

Den här genomgången skrevs med hjälp av Visual Basic Development Inställningar.

Förutsättningar

Den här genomgången kräver följande:

  • Den här genomgången använder en dedikerad mapp ("c:\linqtest3") för att lagra filer. Skapa den här mappen innan du påbörjar genomgången.

  • Northwind-exempeldatabasen.

    Om du inte har den här databasen på utvecklingsdatorn kan du ladda ned den från Microsofts nedladdningswebbplats. Anvisningar finns i Ladda ned exempeldatabaser. När du har laddat ned databasen kopierar du northwnd.mdf-filen till mappen c:\linqtest3.

  • En Visual Basic-kodfil som genererats från Northwind-databasen.

    Den här genomgången skrevs med hjälp av SqlMetal-verktyget med följande kommandorad:

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

    Mer information finns i SqlMetal.exe (kodgenereringsverktyg).

Översikt

Den här genomgången består av sex huvuduppgifter:

  • Konfigurera LINQ till SQL-lösningen i Visual Studio.

  • Lägga till sammansättningen System.Data.Linq i projektet.

  • Lägga till databaskodfilen i projektet.

  • Skapa en anslutning till databasen.

  • Konfigurera användargränssnittet.

  • Köra och testa programmet.

Skapa en LINQ till SQL-lösning

I den första uppgiften skapar du en Visual Studio-lösning som innehåller de referenser som krävs för att skapa och köra ett LINQ-projekt till SQL.

Så här skapar du en LINQ-till SQL-lösning

  1. Klicka på Nytt projekt på Menyn Visual Studio-fil.

  2. I fönstret Projekttyper i dialogrutan Nytt projekt expanderar du Visual Basic och klickar sedan på Windows.

  3. I fönstret Mallar klickar du på Windows-formulärprogram.

  4. I rutan Namn skriver du SprocOnlyApp.

  5. Klicka på OK.

    Windows Forms Designer öppnas.

Lägga till LINQ i SQL-sammansättningsreferensen

LINQ till SQL-sammansättningen ingår inte i standardmallen för Windows Forms-program. Du måste lägga till sammansättningen själv, enligt beskrivningen i följande steg:

Så här lägger du till System.Data.Linq.dll

  1. I Solution Explorer klickar du på Visa alla filer.

  2. Högerklicka på Referenser i Solution Explorer och klicka sedan på Lägg till referens.

  3. I dialogrutan Lägg till referens klickar du på .NET, klickar på sammansättningen System.Data.Linq och klickar sedan på OK.

    Sammansättningen läggs till i projektet.

Lägga till Northwind-kodfilen i projektet

Det här steget förutsätter att du har använt SqlMetal-verktyget för att generera en kodfil från Northwind-exempeldatabasen. Mer information finns i avsnittet Förutsättningar tidigare i den här genomgången.

Så här lägger du till northwind-kodfilen i projektet

  1. På Projekt-menyn klickar du på Lägg till befintligt objekt.

  2. I dialogrutan Lägg till befintligt objekt går du till c:\linqtest3\northwind.vb och klickar sedan på Lägg till.

    Filen northwind.vb läggs till i projektet.

Skapa en databas Anslut ion

I det här steget definierar du anslutningen till Northwind-exempeldatabasen. Den här genomgången använder "c:\linqtest3\northwnd.mdf" som sökväg.

Så här skapar du databasanslutningen

  1. Högerklicka Form1.vb i Solution Explorer och klicka sedan på Visa kod.

    Class Form1 visas i kodredigeraren.

  2. Skriv in följande kod i kodblocket Form1 :

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

Konfigurera användargränssnittet

I den här uppgiften skapar du ett gränssnitt så att användarna kan köra lagrade procedurer för att komma åt data i databasen. I programmet som du utvecklar med den här genomgången kan användarna endast komma åt data i databasen med hjälp av de lagrade procedurerna som är inbäddade i programmet.

Så här konfigurerar du användargränssnittet

  1. Gå tillbaka till Windows Forms Designer (Form1.vb[Design]).

  2. På menyn Visa klickar du på Verktygslåda.

    Verktygslådan öppnas.

    Kommentar

    Klicka på autohide-pushpinen för att hålla verktygslådan öppen medan du utför de återstående stegen i det här avsnittet.

  3. Dra två knappar, två textrutor och två etiketter från verktygslådan till Form1.

    Ordna kontrollerna som i den medföljande bilden. Expandera Formulär1 så att kontrollerna passar enkelt.

  4. Högerklicka på Etikett1 och klicka sedan på Egenskaper.

  5. Ändra egenskapen Text från Label1 till Ange OrderID:.

  6. På samma sätt som för Label2 ändrar du egenskapen Text från Label2 till Ange CustomerID:.

  7. På samma sätt ändrar du egenskapen Text för Button1 till Order Details (Beställningsinformation).

  8. Ändra egenskapen Text för Button2 till OrderHistorik.

    Bredda knappkontrollerna så att all text visas.

Så här hanterar du knappklick

  1. Dubbelklicka på BeställningsinformationFormulär1 för att skapa Button1 händelsehanteraren och öppna kodredigeraren.

  2. Skriv in följande kod i Button1 hanteraren:

    ' 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. Dubbelklicka nu på Knapp2 på Formulär1 för att skapa Button2 händelsehanteraren och öppna kodredigeraren.

  4. Skriv in följande kod i Button2 hanteraren:

    ' 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 = ""
    

Testa programmet

Nu är det dags att testa programmet. Observera att din kontakt med datalagringen är begränsad till de åtgärder som de två lagrade procedurerna kan vidta. Dessa åtgärder är att returnera de produkter som ingår för alla orderID som du anger, eller att returnera en historik över produkter som beställts för alla CustomerID du anger.

Testa programmet

  1. Starta felsökningen genom att trycka på F5.

    Formulär1 visas.

  2. I rutan Ange OrderID skriver du 10249 och klickar sedan på Orderinformation.

    I en meddelanderuta visas de produkter som ingår i ordning 10249.

    Stäng meddelanderutan genom att klicka på OK .

  3. I rutan Ange CustomerID skriver du ALFKIoch klickar sedan på Orderhistorik.

    En meddelanderuta visar orderhistoriken för kundens ALFKI.

    Stäng meddelanderutan genom att klicka på OK .

  4. I rutan Ange OrderID skriver du 123och klickar sedan på Orderinformation.

    En meddelanderuta visar "Inga resultat".

    Stäng meddelanderutan genom att klicka på OK .

  5. På felsökningsmenyn klickar du på Sluta felsöka.

    Felsökningssessionen stängs.

  6. Om du har experimenterat klart kan du klicka på Stäng projektArkiv-menyn och spara projektet när du uppmanas att göra det.

Nästa steg

Du kan förbättra det här projektet genom att göra några ändringar. Du kan till exempel lista tillgängliga lagrade procedurer i en listruta och låta användaren välja vilka procedurer som ska köras. Du kan också strömma utdata från rapporterna till en textfil.

Se även