Sdílet prostřednictvím


Návod: Použití jen uložených procedur (Visual Basic)

Tento názorný postup poskytuje základní komplexní scénář LINQ to SQL pro přístup k datům pouze pomocí uložených procedur. Tento přístup často používají správci databáze k omezení přístupu k úložišti dat.

Poznámka:

Pomocí uložených procedur v aplikacích LINQ to SQL můžete také přepsat výchozí chování, zejména pro Create, Updatea Delete procesy. Další informace naleznete v tématu Přizpůsobení operací vložení, aktualizace a odstranění.

Pro účely tohoto názorného postupu použijete dvě metody mapované na uložené procedury v ukázkové databázi Northwind: CustOrdersDetail a CustOrderHist. K mapování dochází při spuštění nástroje příkazového řádku SqlMetal pro vygenerování souboru jazyka Visual Basic. Další informace najdete v části Požadavky dále v tomto názorném postupu.

Tento návod nespoléhá na Návrhář relací objektů. Vývojáři, kteří používají Visual Studio, můžou také použít Návrhář relací objektů k implementaci funkcí uložených procedur. Viz NÁSTROJE LINQ to SQL v sadě Visual Studio.

Poznámka:

Váš počítač může v následujících pokynech zobrazovat odlišné názvy nebo umístění některých prvků uživatelského rozhraní sady Visual Studio. Tyto prvky jsou určeny edicí sady Visual Studio a použitým nastavením. Další informace najdete v tématu Přizpůsobení integrovaného vývojového prostředí.

Tento návod byl napsán pomocí vývojového Nastavení jazyka Visual Basic.

Požadavky

Tento názorný postup vyžaduje následující:

  • Tento názorný postup používá k uložení souborů vyhrazenou složku (c:\linqtest3). Vytvořte tuto složku před zahájením návodu.

  • Ukázkovou databázi Northwind

    Pokud tuto databázi nemáte na vývojovém počítači, můžete ji stáhnout z webu pro stažení microsoftu. Pokyny najdete v tématu Stažení ukázkových databází. Po stažení databáze zkopírujte soubor northwnd.mdf do složky c:\linqtest3.

  • Soubor kódu jazyka Visual Basic vygenerovaný z databáze Northwind.

    Tento návod byl napsán pomocí nástroje SqlMetal s následujícím příkazovým řádkem:

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

    Další informace najdete v tématu SqlMetal.exe (nástroj pro generování kódu).

Přehled

Tento názorný postup se skládá ze šesti hlavních úloh:

  • Nastavení řešení LINQ to SQL v sadě Visual Studio

  • Přidání sestavení System.Data.Linq do projektu

  • Přidání souboru kódu databáze do projektu

  • Vytvoření připojení k databázi

  • Nastavení uživatelského rozhraní

  • Spuštění a testování aplikace

Vytvoření řešení LINQ to SQL

V tomto prvním úkolu vytvoříte řešení sady Visual Studio, které obsahuje potřebné odkazy na sestavení a spuštění projektu LINQ to SQL.

Vytvoření řešení LINQ to SQL

  1. V nabídce Soubor sady Visual Studio klepněte na tlačítko Nový projekt.

  2. V podokně Typy projektů v dialogovém okně Nový projekt rozbalte položku Visual Basic a klepněte na tlačítko Windows.

  3. V podokně Šablony klikněte na model Windows Forms Aplikace.

  4. Do pole Název zadejte SprocOnlyApp.

  5. Klikněte na OK.

    Otevře se návrhář model Windows Forms.

Přidání odkazu na sestavení LINQ to SQL

Sestavení LINQ to SQL není součástí standardní šablony aplikace model Windows Forms. Sestavení budete muset přidat sami, jak je vysvětleno v následujících krocích:

Přidání System.Data.Linq.dll

  1. V Průzkumník řešení klikněte na Zobrazit všechny soubory.

  2. V Průzkumník řešení klepněte pravým tlačítkem myši Na odkazy a klepněte na tlačítko Přidat odkaz.

  3. V dialogovém okně Přidat odkaz klepněte na tlačítko .NET, klepněte na system.Data.Linq sestavení a klepněte na tlačítko OK.

    Sestavení se přidá do projektu.

Přidání souboru kódu Northwind do projektu

Tento krok předpokládá, že jste použili nástroj SqlMetal k vygenerování souboru kódu z ukázkové databáze Northwind. Další informace najdete v části Požadavky uvedené výše v tomto názorném postupu.

Přidání souboru kódu northwind do projektu

  1. V nabídce Projekt klepněte na tlačítko Přidat existující položku.

  2. V dialogovém okně Přidat existující položku přejděte do složky c:\linqtest3\northwind.vb a klikněte na tlačítko Přidat.

    Do projektu se přidá soubor northwind.vb.

Vytvoření Připojení databáze

V tomto kroku definujete připojení k ukázkové databázi Northwind. Tento návod jako cestu používá c:\linqtest3\northwnd.mdf.

Vytvoření připojení k databázi

  1. V Průzkumník řešení klepněte pravým tlačítkem na Form1.vb a potom klepněte na tlačítko Zobrazit kód.

    Class Form1 zobrazí se v editoru kódu.

  2. Do bloku kódu zadejte následující kód Form1 :

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

Nastavení uživatelského rozhraní

V této úloze vytvoříte rozhraní, aby uživatelé mohli spouštět uložené procedury pro přístup k datům v databázi. V aplikaci, kterou vyvíjíte pomocí tohoto názorného postupu, mají uživatelé přístup k datům v databázi pouze pomocí uložených procedur vložených do aplikace.

Nastavení uživatelského rozhraní

  1. Vraťte se do návrháře model Windows Forms (Form1.vb[Design]).

  2. V nabídce Zobrazení klikněte na Panel nástrojů.

    Otevře se panel nástrojů.

    Poznámka:

    Kliknutím na tlačítko AutoHide pushpin zachováte panel nástrojů otevřený, zatímco provedete zbývající kroky v této části.

  3. Přetáhněte dvě tlačítka, dvě textová pole a dva popisky z panelu nástrojů na Form1.

    Uspořádejte ovládací prvky jako na doprovodném obrázku. Rozbalte formulář1 tak, aby se ovládací prvky vešly snadno.

  4. Klepněte pravým tlačítkem myši Popisek1 a klepněte na příkaz Vlastnosti.

  5. Změňte vlastnost Text z Label1 na Enter OrderID:.

  6. Stejně jako u Label2 změňte vlastnost Text z Label2 na Enter CustomerID:.

  7. Stejným způsobem změňte vlastnost Text pro Button1 na Podrobnosti objednávky.

  8. Změňte vlastnost Text tlačítka2 na Historii objednávek.

    Rozšiřte ovládací prvky tlačítka tak, aby byl veškerý text viditelný.

Zpracování kliknutí na tlačítko

  1. Poklikáním na Podrobnosti objednávky ve formuláři Form1 vytvořte obslužnou rutinu Button1 události a otevřete editor kódu.

  2. Do obslužné rutiny Button1 zadejte následující kód:

    ' 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. Teď poklikejte na Button2 ve formuláři Form1 a vytvořte obslužnou rutinu Button2 události a otevřete editor kódu.

  4. Do obslužné rutiny Button2 zadejte následující kód:

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

Testování aplikace

Teď je čas otestovat aplikaci. Mějte na paměti, že váš kontakt s úložištěm dat je omezený na akce, které mohou tyto dvě uložené procedury provést. Tyto akce mají vrátit produkty zahrnuté pro jakékoli ZADANÉ ID objednávky nebo vrátit historii produktů objednaných pro id zákazníka, které zadáte.

Testování aplikace

  1. Stisknutím klávesy F5 spusťte ladění.

    Zobrazí se formulář 1.

  2. Do pole Zadejte ID objednávky zadejte 10249 a klepněte na tlačítko Podrobnosti objednávky.

    Okno se zprávou obsahuje produkty zahrnuté v objednávce 10249.

    Kliknutím na tlačítko OK zavřete okno se zprávou.

  3. Do pole Zadejte ID zákazníka zadejte ALFKIa klepněte na tlačítko Historie objednávek.

    Pole se zprávou obsahuje historii objednávek pro zákazníka ALFKI.

    Kliknutím na tlačítko OK zavřete okno se zprávou.

  4. Do pole Zadejte ID objednávky zadejte 123a klepněte na tlačítko Podrobnosti objednávky.

    V poli se zprávou se zobrazí zpráva Bez výsledků.

    Kliknutím na tlačítko OK zavřete okno se zprávou.

  5. V nabídce Ladění klepněte na tlačítko Zastavit ladění.

    Relace ladění se zavře.

  6. Pokud jste experimentování dokončili, můžete po zobrazení výzvy kliknout na Zavřít projekt v nabídce Soubor a projekt uložit.

Další kroky

Tento projekt můžete vylepšit provedením některých změn. Můžete například zobrazit seznam dostupných uložených procedur v seznamu a nechat uživatele vybrat, které procedury se mají provést. Výstup sestav můžete také streamovat do textového souboru.

Viz také