Sdílet prostřednictvím


Průvodce: Použití uložených procedur

Uložené procedury v databázi serveru SQL Server nelze volat přímo z LightSwitch, ale můžete vytvořit tabulku místní ve vaší aplikaci LightSwitch, který obsahuje parametry uložené procedury a potom zavolejte uloženou proceduru z vrstvy události serveru.Tento průvodce ukazuje, jak chcete-li vložit záznamy zákazníků v databázi SQL pomocí uložené procedury.

Mnoho správců databázi nedovoluje přímý přístup k tabulkám, místo toho vystavuje zobrazení jen pro čtení a poskytujte uložené procedury pro vkládání, aktualizaci a odstraňování záznamů.LightSwitch nerozpoznává uložené procedury, takže jakákoli databáze, která závisí na uložených procedurách při aktualizaci záznamů, se zprvu může jevit nepoužitelně.Pokud provedete trochu práce navíc, můžete opravdu použít tyto databáze z LightSwitch.

Požadavky

Tento návod používá ukázkovou databázi Northwind.

Vytvoření uložené procedury

Ve většině případů přistupujete k uloženým postupům, které již existují v databázi.Databáze Northwind nemá potřebné uložené procedury, chcete-li vložit záznamy zákazníků, takže je nutné přidat.

Chcete-li přidat uložené procedury

  1. V řádku nabídek zvolte Zobrazení a Průzkumník objektů serveru SQL Server.

  2. V okně Průzkumník objektů serveru SQL rozbalte uzel databáze NORTHWIND a potom zvolte Programovatelnost.

  3. Rozbalte uzel Programovatelnost a klikněte na tlačítko Uložené postupy.

  4. Otevřete místní nabídku Uložené procedury a poté vyberte položku Přidat novou uloženou proceduru.

  5. V Editoru kódu nahraďte obsah následujícím kódem Transact-SQL a potom vyberte tlačítko Aktualizovat.

    CREATE Procedure [dbo].[InsertCustomer]
        @CustomerID nchar(5),
        @CompanyName nvarchar(40),
        @ContactName nvarchar(30),
        @ContactTitle nvarchar(30),
        @Address nvarchar(60),
        @City nvarchar(15),
        @Region nvarchar(15),
        @PostalCode nvarchar(10),
        @Country nvarchar(15),
        @Phone nvarchar(24),
        @Fax nvarchar(24)
    AS
    INSERT INTO [dbo].[Customers]
               ([CustomerID]
               ,[CompanyName]
               ,[ContactName]
               ,[ContactTitle]
               ,[Address]
               ,[City]
               ,[Region]
               ,[PostalCode]
               ,[Country]
               ,[Phone]
               ,[Fax])
         VALUES
               (@CustomerID
               ,@CompanyName
               ,@ContactName
               ,@ContactTitle
               ,@Address
               ,@City
               ,@Region
               ,@PostalCode
               ,@Country
               ,@Phone
               ,@Fax)
    
  6. V dialogovém okně Náhled aktualizací databáze klikněte na tlačítko Aktualizace databáze.

    Uložená procedura InsertCustomer je přidána do databáze.

Vytvořit aplikaci LightSwitch

V tomto kroku vytvoříte aplikaci zavolejte uloženou proceduru a přidání nových zákazníků do databáze Northwind.

Chcete-li vytvořit aplikaci

  1. V nabídce zvolte soubor, Nový, projektu.

  2. V Nový projekt dialogové okno rozbalte jazyka Visual Basic nebo Visual C# uzel a poté zvolte možnost aplikace HTML LightSwitch šablony.

  3. V název textové pole, zadejte NorthwindSP, a poté zvolte možnost OK tlačítko

Přidání zdroje dat

  1. V Průzkumníka řešení, otevřete místní nabídku pro zdroje dat uzel a zvolte možnost Přidat zdroj dat.

  2. V Připojit Průvodce zdroje dat, zvolte databáze, a poté zvolte možnost Další tlačítko.

  3. V Vlastnosti připojení dialogové okno zadejte podrobnosti o připojení k databázi Northwind a poté zvolte možnost OK tlačítko.

  4. Na zvolte databázové objekty stránky, rozbalte položku tabulky uzel a vyberte Zákazníci zaškrtávací políčko a poté zvolte možnost Dokončit tlačítko.

Chcete-li přidat místní tabulky

  1. V Průzkumníka řešení, otevřete místní nabídku pro zdroje dat uzel a zvolte možnost Přidat tabulku.

  2. V Vlastnosti okna, zvolte název vlastnost a zadejte Nový zákazník.

  3. V návrháři entit přidejte tato pole:

    Name

    Typ

    Požadováno

    ID zákazníka

    String

    Ano

    Firma

    String

    Ano

    ContactName

    String

    Ano

    Funkce

    String

    Ano

    Adresa

    String

    Ano

    Město

    String

    Ano

    Oblast

    String

    Ano

    PSČ

    String

    Ano

    Země

    String

    Ano

    Telefon

    Telefonní číslo

    Ano

    Faxové zprávy

    Telefonní číslo

    Ano

    Všimněte si, že všechna pole jsou povinná.Důvodem je, že všechny parametry pro uložené procedury vyžadují hodnoty.Také Všimněte si, že datový typ Telefon a Fax pole jsou Phone Number.I v případě, že tyto jsou uloženy v databázi jako nvarchar, můžete využívat výhod LightSwitch vlastní obchodní typy ve vrstvě klienta.

Přidání obrazovky

  1. V Návrháři entity na perspektivy pruhu, zvolte HTMLClient.

  2. Na nástrojů, zvolte tlačítko obrazovky.

  3. V Přidat nové obrazovce dialogové okno zvolte běžné obrazovky nastaveno šablony v nastavit název obrazovky textového pole zadejte Zákazníci, a v obrazovce dat seznamu zvolte Nový zákazník, a poté zvolte možnost OK tlačítko.

Chcete-li volat uložené procedury

  1. V Průzkumníka řešení, otevřete místní nabídku pro NorthwindSP.Server uzel a zvolte možnost Přidat, referenční.

  2. V Přidat odkaz dialogového okna, vyberte možnost System.Configuration zaškrtávací políčko a poté zvolte možnost OK tlačítko.

  3. V Průzkumníka řešení, otevřete místní nabídku pro NewCustomer.lsml uzel a zvolte možnost Otevřete.

  4. V Návrháři entity na perspektivy pruhu, zvolte Server.

  5. Na nástrojů, rozbalte položku psát kód seznamu a zvolte NewCustomers_Inserting.

  6. V editoru kódu nahraďte existující kód následující:

    Imports System.Configuration
    Imports System.Data
    Imports System.Data.SqlClient
    Namespace LightSwitchApplication
    
        Public Class ApplicationDataService
    
            Private Sub NewCustomers_Inserting(entity As NewCustomer)
                Using connection = New SqlConnection
                    Dim connectionStringName = Me.DataWorkspace.NorthwindData.Details.Name
                    connection.ConnectionString = ConfigurationManager.ConnectionStrings(connectionStringName).ConnectionString
    
                    Dim procedure = "dbo.InsertCustomer"
                    Using command = New SqlCommand(procedure, connection)
                        command.CommandType = CommandType.StoredProcedure
    
                        command.Parameters.Add(
                            New SqlParameter("@CustomerID", entity.CustomerID))
                        command.Parameters.Add(
                            New SqlParameter("@CompanyName", entity.CompanyName))
                        command.Parameters.Add(
                            New SqlParameter("@ContactName", entity.ContactName))
                        command.Parameters.Add(
                            New SqlParameter("@ContactTitle", entity.ContactTitle))
                        command.Parameters.Add(
                            New SqlParameter("@Address", entity.Address))
                        command.Parameters.Add(
                            New SqlParameter("@City", entity.City))
                        command.Parameters.Add(
                            New SqlParameter("@Region", entity.Region))
                        command.Parameters.Add(
                            New SqlParameter("@PostalCode", entity.PostalCode))
                        command.Parameters.Add(
                            New SqlParameter("@Country", entity.Country))
                        command.Parameters.Add(
                            New SqlParameter("@Phone", entity.Phone))
                        command.Parameters.Add(
                            New SqlParameter("@Fax", entity.Fax))
    
                        connection.Open()
                        command.ExecuteNonQuery()
                    End Using
    
    
                End Using
            End Sub
        End Class
    
    End Namespace
    
    using Microsoft.VisualBasic;
    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Data;
    using System.Diagnostics;
    using System.Configuration;
    using System.Data.SqlClient;
    namespace LightSwitchApplication
    {
    
    public class ApplicationDataService
    {
    
    private void NewCustomers_Inserting(NewCustomer entity)
    {
    using (connection == new SqlConnection()) {
    dynamic connectionStringName = this.DataWorkspace.NorthwindData.Details.Name;
    connection.ConnectionString = ConfigurationManager.ConnectionStrings(connectionStringName).ConnectionString;
    
    dynamic procedure = "dbo.InsertCustomer";
    using (command == new SqlCommand(procedure, connection)) {
    command.CommandType = CommandType.StoredProcedure;
    
    command.Parameters.Add(new SqlParameter("@CustomerID", entity.CustomerID));
    command.Parameters.Add(new SqlParameter("@CompanyName", entity.CompanyName));
    command.Parameters.Add(new SqlParameter("@ContactName", entity.ContactName));
    command.Parameters.Add(new SqlParameter("@ContactTitle", entity.ContactTitle));
    command.Parameters.Add(new SqlParameter("@Address", entity.Address));
    command.Parameters.Add(new SqlParameter("@City", entity.City));
    command.Parameters.Add(new SqlParameter("@Region", entity.Region));
    command.Parameters.Add(new SqlParameter("@PostalCode", entity.PostalCode));
    command.Parameters.Add(new SqlParameter("@Country", entity.Country));
    command.Parameters.Add(new SqlParameter("@Phone", entity.Phone));
    command.Parameters.Add(new SqlParameter("@Fax", entity.Fax));
    
    connection.Open();
    command.ExecuteNonQuery();
    }
    
    
    }
    }
    }
    
    }
    

    Pokud nový záznam je vložena do tabulky NewCustomers, tento kód se spustí, otevírání připojení k Northwind databáze a spuštěna InsertCustomer uložené procedury, poskytování hodnoty ve Nový zákazník entity jako parametry pro uložené procedury.

Testování aplikace

  1. V editoru kódu nastavení zarážky NewCustomers_Inserting metody.

  2. Spusťte aplikaci a na CustomersSet obrazovky, zvolte Přidat tlačítko.

  3. Na Zákazníci obrazovky, vyplňte všechna pole a zvolte možnost Uložit tlačítko.

    Všimněte si, že zarážky přístupů, představením toho, zda pracuje kód a stisknete klávesu F5, aby bylo možné pokračovat.Pokud otevřete tabulku Zákazníci v databázi Northwind, zobrazí se váš nový záznam zákazníka.

Další kroky

Můžete vytvořit obvyklým způsobem obrazovky LightSwitch a obchodní logiku a snadno a rychle vytvořit fungující aplikaci pomocí uložených procedur.

Viz také

Úkoly

Postupy: Provedení uložené procedury v aplikaci LightSwitch

Další zdroje

Data: Informace pro vaši aplikaci