Sdílet prostřednictvím


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

Tento návod poskytuje základní komplexní scénář LINQ to SQL pro přístup k datům spuštěním pouze 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 C#. 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 C#.

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:\linqtest7). 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:\linqtest7.

  • Soubor kódu jazyka C# 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:\linqtest7\northwind.cs" /language:csharp "c:\linqtest7\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 přejděte na příkaz Nový a klepněte na tlačítko Projekt.

  2. V podokně Typy projektů v dialogovém okně Nový projekt klikněte na Visual C#.

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

  4. Do pole Název zadejte SprocOnlyApp.

  5. V poli Umístění ověřte, kam chcete ukládat soubory projektu.

  6. 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í klepněte pravým tlačítkem myši Na odkazy a klepněte na tlačítko Přidat odkaz.

  2. 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 na c:\linqtest7\northwind.cs a klepněte na tlačítko Přidat.

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

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:\linqtest7\northwnd.mdf.

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

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

  2. Do třídy zadejte následující kód Form1 :

    Northwnd db = new Northwnd(@"c:\linqtest7\northwnd.mdf");
    

Nastavení uživatelského rozhraní

V této úloze nastavíte rozhraní, aby uživatelé mohli spouštět uložené procedury pro přístup k datům v databázi. V aplikacích, které 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.cs[Návrh]).

  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. Klikněte pravým tlačítkem myši na popisek1 a potom klikněte na příkaz Vlastnosti.

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

  6. Stejným způsobem jako u popisku 2 změňte vlastnost Text z label2 na Enter CustomerID:.

  7. Stejným způsobem změňte vlastnost Text tlačítka1 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 otevřete obslužnou rutinu události button1 v editoru 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.
    string param = textBox1.Text;
    
    // Declare a variable to hold the results
    // returned by the stored procedure.
    var custquery = db.CustOrdersDetail(Convert.ToInt32(param));
    
    // Execute the stored procedure and display the results.
    string msg = "";
    foreach (CustOrdersDetailResult custOrdersDetail in custquery)
    {
        msg = msg + custOrdersDetail.ProductName + "\n";
    }
    if (msg == "")
        msg = "No results.";
    MessageBox.Show(msg);
    
    // Clear the variables before continuing.
    param = "";
    textBox1.Text = "";
    
  3. Nyní poklikáním na tlačítko2 ve formuláři Form1 otevřete obslužnou rutinu button2 .

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

    // Comments in the code for button2 are the same
    // as for button1.
    string param = textBox2.Text;
    
    var custquery = db.CustOrderHist(param);
    
    string msg = "";
    foreach (CustOrderHistResult custOrdHist in custquery)
    {
        msg = msg + custOrdHist.ProductName + "\n";
    }
    MessageBox.Show(msg);
    
    param = "";
    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 10249a 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.

    Zobrazí se okno se zprávou se seznamem historie 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.

    Zobrazí se okno se zprávou, které zobrazuje "Žádné výsledky".

    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é