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
V řádku nabídek zvolte Zobrazení a Průzkumník objektů serveru SQL Server.
V okně Průzkumník objektů serveru SQL rozbalte uzel databáze NORTHWIND a potom zvolte Programovatelnost.
Rozbalte uzel Programovatelnost a klikněte na tlačítko Uložené postupy.
Otevřete místní nabídku Uložené procedury a poté vyberte položku Přidat novou uloženou proceduru.
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)
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
V nabídce zvolte soubor, Nový, projektu.
V Nový projekt dialogové okno rozbalte jazyka Visual Basic nebo Visual C# uzel a poté zvolte možnost aplikace HTML LightSwitch šablony.
V název textové pole, zadejte NorthwindSP, a poté zvolte možnost OK tlačítko
Přidání zdroje dat
V Průzkumníka řešení, otevřete místní nabídku pro zdroje dat uzel a zvolte možnost Přidat zdroj dat.
V Připojit Průvodce zdroje dat, zvolte databáze, a poté zvolte možnost Další tlačítko.
V Vlastnosti připojení dialogové okno zadejte podrobnosti o připojení k databázi Northwind a poté zvolte možnost OK tlačítko.
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
V Průzkumníka řešení, otevřete místní nabídku pro zdroje dat uzel a zvolte možnost Přidat tabulku.
V Vlastnosti okna, zvolte název vlastnost a zadejte Nový zákazník.
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
V Návrháři entity na perspektivy pruhu, zvolte HTMLClient.
Na nástrojů, zvolte tlačítko obrazovky.
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
V Průzkumníka řešení, otevřete místní nabídku pro NorthwindSP.Server uzel a zvolte možnost Přidat, referenční.
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.
V Průzkumníka řešení, otevřete místní nabídku pro NewCustomer.lsml uzel a zvolte možnost Otevřete.
V Návrháři entity na perspektivy pruhu, zvolte Server.
Na nástrojů, rozbalte položku psát kód seznamu a zvolte NewCustomers_Inserting.
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
V editoru kódu nastavení zarážky NewCustomers_Inserting metody.
Spusťte aplikaci a na CustomersSet obrazovky, zvolte Přidat tlačítko.
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