Vkládání, aktualizace a odstraňování dat ovládacím prvkem SqlDataSource (VB)
V předchozích kurzech jsme se dozvěděli, jak ovládací prvek ObjectDataSource umožňuje vkládání, aktualizaci a odstraňování dat. Ovládací prvek SqlDataSource podporuje stejné operace, ale přístup je jiný a tento kurz ukazuje, jak nakonfigurovat SqlDataSource pro vkládání, aktualizaci a odstraňování dat.
Úvod
Jak je popsáno v tématu Přehled vložení, aktualizace a odstranění, ovládací prvek GridView poskytuje integrované možnosti aktualizace a odstraňování, zatímco ovládací prvky DetailsView a FormView zahrnují podporu vkládání spolu s úpravami a odstraňováním funkcí. Tyto možnosti úprav dat je možné zapojit přímo do ovládacího prvku zdroje dat, aniž by bylo nutné zapsat řádek kódu. Přehled vkládání, aktualizace a odstraňování prověřovaných pomocí ObjectDataSource pro usnadnění vkládání, aktualizace a odstraňování pomocí ovládacích prvků GridView, DetailsView a FormView Alternativně sqlDataSource lze použít místo ObjectDataSource.
Vzpomeňte si, že pro podporu vkládání, aktualizace a odstraňování jsme u ObjectDataSource potřebovali zadat metody vrstvy objektů, které se mají vyvolat k provedení akce vložení, aktualizace nebo odstranění. U sqldatasource musíme zadat INSERT
příkazy SQL , UPDATE
a DELETE
(neboli uložené procedury), které se mají provést. Jak uvidíme v tomto kurzu, tyto příkazy se dají vytvořit ručně nebo se dají automaticky vygenerovat průvodcem Konfigurace zdroje dat SqlDataSource.
Poznámka
Vzhledem k tomu, že jsme již probrali možnosti vkládání, úprav a odstraňování ovládacích prvků GridView, DetailsView a FormView, tento kurz se zaměří na konfiguraci ovládacího prvku SqlDataSource pro podporu těchto operací. Pokud potřebujete provést implementaci těchto funkcí v gridview, DetailsView a FormView, vraťte se ke kurzům Úpravy, vkládání a odstraňování dat, počínaje přehledem vkládání, aktualizace a odstraňování.
Krok 1: Zadání příkazů INSERT, UPDATE a DELETE
Jak jsme viděli v předchozích dvou kurzech, abychom mohli načíst data z ovládacího prvku SqlDataSource, musíme nastavit dvě vlastnosti:
ConnectionString
, která určuje, do které databáze se má dotaz odeslat, aSelectCommand
, který určuje ad hoc příkaz SQL nebo název uložené procedury, která se má spustit, aby se vrátily výsledky.
Pro SelectCommand
hodnoty s parametry se hodnoty parametrů zadávají prostřednictvím kolekce SqlDataSource a SelectParameters
můžou obsahovat pevně zakódované hodnoty, běžné zdrojové hodnoty parametrů (pole řetězce dotazů, proměnné relace, hodnoty webového ovládacího prvku atd.) nebo je lze přiřadit programově. Při vyvolání metody s ovládacího prvku Select()
SqlDataSource buď programově, nebo automaticky z datového webového ovládacího prvku je navázáno připojení k databázi, jsou k dotazu přiřazeny hodnoty parametrů a příkaz je odváděn do databáze. Výsledky se pak vrátí buď jako DataSet nebo DataReader v závislosti na hodnotě vlastnosti ovládacího prvku s DataSourceMode
.
Spolu s výběrem dat lze ovládací prvek SqlDataSource použít k vložení, aktualizaci a odstranění dat zadáním INSERT
příkazů , UPDATE
a DELETE
SQL v podstatě stejným způsobem. Jednoduše přiřaďte InsertCommand
vlastnosti UPDATE
INSERT
, UpdateCommand
a DeleteCommand
, a příkazů SQL, které DELETE
se mají spustit. Pokud příkazy mají parametry (jako obvykle), zahrňte je do InsertParameters
kolekcí , UpdateParameters
a DeleteParameters
.
InsertCommand
Po zadání hodnoty , UpdateCommand
nebo DeleteCommand
bude dostupná možnost Povolit vkládání, Povolit úpravy nebo Povolit odstranění v inteligentní značce odpovídajícího datového webového ovládacího prvku. Pro ilustraci si vezměme příklad ze Querying.aspx
stránky, kterou jsme vytvořili v kurzu Dotazování na data pomocí ovládacího prvku SqlDataSource , a rozšiřme ho o možnosti odstranění.
Začněte otevřením InsertUpdateDelete.aspx
stránek a Querying.aspx
ze SqlDataSource
složky. V Designer na Querying.aspx
stránce vyberte SqlDataSource a GridView z prvního příkladu ProductsDataSource
(ovládací prvky aGridView1
). Po výběru těchto dvou ovládacích prvků přejděte do nabídky Úpravy a zvolte Kopírovat (nebo stiskněte kombinaci kláves Ctrl+C). Dále přejděte na Designer InsertUpdateDelete.aspx
a vložte ovládací prvky. Po přesunutí těchto dvou ovládacích prvků do InsertUpdateDelete.aspx
nástroje otestujte stránku v prohlížeči. Měly by se zobrazit hodnoty ProductID
sloupců , ProductName
a UnitPrice
pro všechny záznamy v tabulce Products
databáze.
Obrázek 1: Všechny produkty jsou uvedené, seřazené podle ProductID
(kliknutím zobrazíte obrázek v plné velikosti)
Přidání vlastností DeleteCommand a DeleteParameters z SqlDataSource
V tomto okamžiku máme SqlDataSource, který jednoduše vrátí všechny záznamy z Products
tabulky a Objekt GridView, který vykreslí tato data. Naším cílem je rozšířit tento příklad tak, aby uživatel mohl odstraňovat produkty prostřednictvím objektu GridView. Abychom toho dosáhli, musíme zadat hodnoty pro ovládací prvek SqlDataSource s DeleteCommand
a DeleteParameters
vlastnosti a poté nakonfigurovat GridView tak, aby podporoval odstraňování.
Vlastnosti DeleteCommand
a DeleteParameters
lze zadat několika způsoby:
- Prostřednictvím deklarativní syntaxe
- Z okno Vlastnosti v Designer
- Na obrazovce Zadejte vlastní příkaz SQL nebo uloženou proceduru v průvodci Konfigurací zdroje dat
- Prostřednictvím tlačítka Upřesnit na obrazovce Zadat sloupce ze zobrazení v průvodci Konfigurovat zdroj dat, které ve skutečnosti automaticky vygeneruje
DELETE
příkaz SQL a kolekci parametrů použitých veDeleteCommand
vlastnostech aDeleteParameters
Podíváme se, jak automaticky DELETE
vytvořit příkaz v kroku 2. Prozatím použijeme okno Vlastnosti v Designer, i když stejně dobře bude fungovat i možnost Průvodce konfigurací zdroje dat nebo deklarativní syntaxe.
V Designer klikněte InsertUpdateDelete.aspx
na ProductsDataSource
SqlDataSource a pak vyvolejte okno Vlastnosti (v nabídce Zobrazení zvolte okno Vlastnosti nebo jednoduše stiskněte klávesu F4). Vyberte vlastnost DeleteQuery, která zobrazí sadu tří teček.
Obrázek 2: Výběr vlastnosti DeleteQuery v okně Vlastnosti
Poznámka
SqlDataSource nemá vlastnost DeleteQuery. DeleteQuery je spíše kombinace DeleteCommand
vlastností a DeleteParameters
a je uvedena pouze v okno Vlastnosti při prohlížení okna prostřednictvím Designer. Pokud se díváte na okno Vlastnosti v zobrazení Zdroj, najdete DeleteCommand
místo toho vlastnost .
Kliknutím na tři tečky ve vlastnosti DeleteQuery otevřete dialogové okno Command and Parameter Editor (viz Obrázek 3). V tomto dialogovém okně můžete zadat DELETE
příkaz SQL a zadat parametry. Do textového DELETE
pole příkazu zadejte následující dotaz (ručně nebo pomocí Tvůrce dotazů, pokud chcete):
DELETE FROM Products
WHERE ProductID = @ProductID
Potom kliknutím na tlačítko Aktualizovat parametry přidejte @ProductID
parametr do seznamu níže uvedených parametrů.
@ProductID přidaným do seznamu parametrů příkazu DELETE />
Obrázek 3: V okně Vlastnosti vyberte vlastnost DeleteQuery (kliknutím zobrazíte obrázek v plné velikosti)
Nezadávejte hodnotu tohoto parametru (zdroj parametru ponechte na none ). Jakmile přidáme podporu odstraňování do GridView, GridView automaticky zadá tuto hodnotu parametru pomocí hodnoty jeho DataKeys
kolekce pro řádek, jehož odstranit tlačítko bylo kliknutí.
Poznámka
Název parametru DELETE
použitý v dotazu musí být stejný jako název DataKeyNames
hodnoty v GridView, DetailsView nebo FormView. To znamená, že parametr v DELETE
příkazu má účelný název @ProductID
(místo například @ID
), protože název sloupce primárního klíče v tabulce Products (a proto hodnota DataKeyNames v GridView) je ProductID
.
Pokud se název parametru a DataKeyNames
hodnota neshoduje, GridView nemůže automaticky přiřadit parametru hodnotu z DataKeys
kolekce.
Po zadání informací souvisejících s odstraněním do dialogového okna Command and Parameter Editor klikněte na OK a přejděte do zobrazení Zdroj a prohlédněte si výsledné deklarativní značky:
<asp:SqlDataSource ID="ProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand=
"SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]"
DeleteCommand="DELETE FROM Products WHERE ProductID = @ProductID">
<DeleteParameters>
<asp:Parameter Name="ProductID" />
</DeleteParameters>
</asp:SqlDataSource>
Všimněte si přidání DeleteCommand
vlastnosti a oddílu <DeleteParameters>
a objektu Parameter s názvem productID
.
Konfigurace objektu GridView pro odstranění
S přidanou DeleteCommand
vlastností teď inteligentní značka GridView obsahuje možnost Povolit odstranění. Pokračujte a zaškrtněte toto políčko. Jak je popsáno v přehledu vkládání, aktualizace a odstraňování, to způsobí, že GridView přidá CommandField s jeho ShowDeleteButton
vlastností nastavenou na True
. Jak ukazuje obrázek 4, při návštěvě stránky v prohlížeči je zahrnuto tlačítko Odstranit. Otestujte tuto stránku odstraněním některých produktů.
Obrázek 4: Každý řádek GridView teď obsahuje tlačítko Odstranit (kliknutím zobrazíte obrázek v plné velikosti)
Po kliknutí na tlačítko Odstranit dojde k zpětnému odeslání, GridView přiřadí ProductID
parametru hodnotu DataKeys
hodnoty kolekce pro řádek, jehož odstranit tlačítko bylo kliknutí, a vyvolá SqlDataSource s Delete()
metodu. Ovládací prvek SqlDataSource se pak připojí k databázi a spustí DELETE
příkaz. GridView pak znovu připojí k SqlDataSource, získá zpět a zobrazí aktuální sadu produktů (která už nezahrnuje právě odstraněný záznam).
Poznámka
Vzhledem k tomu, Že GridView používá svou DataKeys
kolekci k naplnění parametrů SqlDataSource, je důležité, aby vlastnost GridView s DataKeyNames
byla nastavena na sloupce, které tvoří primární klíč, a aby SqlDataSource s SelectCommand
vrátil tyto sloupce. Kromě toho je důležité, aby byl název parametru v sqldatasource s DeleteCommand
nastavený na @ProductID
hodnotu . DataKeyNames
Pokud vlastnost není nastavená nebo parametr nemá název @ProductsID
, kliknutím na tlačítko Odstranit dojde k zpětnému odeslání, ale ve skutečnosti se neodstraní žádný záznam.
Obrázek 5 znázorňuje tuto interakci graficky. Podrobnější informace o řetězu událostí spojených s vkládáním, aktualizací a odstraňováním z webového ovládacího prvku dat najdete v kurzu Zkoumání událostí spojených s vkládáním, aktualizací a odstraňováním.
Obrázek 5: Kliknutí na tlačítko Odstranit v GridView vyvolá metodu SqlDataSource s Delete()
Krok 2: Automatické generování INSERT
příkazů , UPDATE
a DELETE
Při zkoumání INSERT
kroku 1 je možné příkazy , UPDATE
a DELETE
SQL zadat prostřednictvím okno Vlastnosti nebo deklarativní syntaxe ovládacího prvku s. Tento přístup však vyžaduje ruční zápis příkazů SQL ručně, což může být monotónní a náchylné k chybám. Průvodce Konfigurovat zdroj dat naštěstí nabízí možnost, aby se INSERT
příkazy , UPDATE
a DELETE
automaticky vygenerovaly při použití obrazovky Zadat sloupce ze zobrazení tabulky.
Pojďme se podívat na tuto možnost automatického generování. Přidejte DetailsView do Designer v InsertUpdateDelete.aspx
a nastavte jeho ID
vlastnost na ManageProducts
. Dále z inteligentní značky DetailsView zvolte vytvořit nový zdroj dat a vytvořte SqlDataSource s názvem ManageProductsDataSource
.
Obrázek 6: Vytvoření nového zdroje dat Sql s názvem ManageProductsDataSource
(kliknutím zobrazíte obrázek v plné velikosti)
V průvodci Konfigurovat zdroj dat zvolte připojovací řetězec NORTHWINDConnectionString
a klikněte na Další. Na obrazovce Configure the Select Statement (Konfigurovat příkaz select) nechte vybraný přepínač Specify columns from a table or view (Zadat sloupce z tabulky nebo zobrazení) a vyberte Products
tabulku z rozevíracího seznamu. V seznamu zaškrtávacích ProductID
polí zaškrtněte sloupce , ProductName
, UnitPrice
a Discontinued
.
Obrázek 7: Použití Products
tabulky, vrácení ProductID
sloupců , ProductName
, UnitPrice
a Discontinued
(kliknutím zobrazíte obrázek v plné velikosti)
Pokud chcete automaticky generovat INSERT
příkazy , UPDATE
a DELETE
na základě vybrané tabulky a sloupců, klikněte na tlačítko Upřesnit a zaškrtněte políčko Generovat INSERT
příkazy , UPDATE
a DELETE
.
Obrázek 8: Zaškrtnutí políčka Generovat INSERT
příkazy , UPDATE
a DELETE
Zaškrtávací políčko Generovat INSERT
příkazy , a DELETE
bude možné kontrolovat pouze v případě, UPDATE
že vybraná tabulka obsahuje primární klíč a sloupec primárního klíče (nebo sloupce) jsou zahrnuté v seznamu vrácených sloupců. Zaškrtávací políčko Použít optimistickou souběžnost, které bude možné vybrat, jakmile je zaškrtnuté políčko Generovat INSERT
příkazy , UPDATE
a DELETE
, rozšíří WHERE
klauzule ve výsledných UPDATE
příkazech a DELETE
zajistí tak řízení optimistické souběžnosti. Prozatím nechte toto políčko nezaškrtnuté; optimistickou souběžnost pomocí ovládacího prvku SqlDataSource prozkoumáme v dalším kurzu.
Po zaškrtnutí políčka Generovat INSERT
příkazy , UPDATE
a DELETE
se kliknutím na TLAČÍTKO OK vraťte na obrazovku Konfigurovat příkaz Select, klikněte na Tlačítko Další a Dokončit a dokončete průvodce konfigurací zdroje dat. Po dokončení průvodce přidá Visual Studio BoundFields do DetailsView pro ProductID
sloupce , ProductName
a UnitPrice
a a CheckBoxField pro sloupec Discontinued
. V inteligentní značce DetailsView zaškrtněte možnost Povolit stránkování, aby uživatel, který navštíví tuto stránku, mohl procházet produkty. Vymažte také Vlastnosti a Height
DetailsViewWidth
.
Všimněte si, že inteligentní značka má k dispozici možnosti Povolit vkládání, Povolit úpravy a Povolit odstranění. SqlDataSource totiž obsahuje hodnoty pro , InsertCommand
UpdateCommand
a DeleteCommand
, jak ukazuje následující deklarativní syntaxe:
<asp:DetailsView ID="ManageProducts" runat="server" AllowPaging="True"
AutoGenerateRows="False" DataKeyNames="ProductID"
DataSourceID="ManageProductsDataSource" EnableViewState="False">
<Fields>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
<asp:BoundField DataField="ProductName" HeaderText="ProductName"
SortExpression="ProductName" />
<asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice"
SortExpression="UnitPrice" />
<asp:CheckBoxField DataField="Discontinued" HeaderText="Discontinued"
SortExpression="Discontinued" />
</Fields>
</asp:DetailsView>
<asp:SqlDataSource ID="ManageProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
DeleteCommand=
"DELETE FROM [Products] WHERE [ProductID] = @ProductID"
InsertCommand=
"INSERT INTO [Products] ([ProductName], [UnitPrice], [Discontinued])
VALUES (@ProductName, @UnitPrice, @Discontinued)"
SelectCommand=
"SELECT [ProductID], [ProductName], [UnitPrice], [Discontinued]
FROM [Products]"
UpdateCommand=
"UPDATE [Products] SET [ProductName] = @ProductName,
[UnitPrice] = @UnitPrice, [Discontinued] = @Discontinued
WHERE [ProductID] = @ProductID">
<DeleteParameters>
<asp:Parameter Name="ProductID" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="ProductName" Type="String" />
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="Discontinued" Type="Boolean" />
<asp:Parameter Name="ProductID" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="ProductName" Type="String" />
<asp:Parameter Name="UnitPrice" Type="Decimal" />
<asp:Parameter Name="Discontinued" Type="Boolean" />
</InsertParameters>
</asp:SqlDataSource>
Všimněte si, že ovládací prvek SqlDataSource má automaticky nastavené hodnoty pro své InsertCommand
vlastnosti , UpdateCommand
a DeleteCommand
. Sada sloupců odkazovaných ve InsertCommand
vlastnostech a UpdateCommand
je založená na sloupcích v SELECT
příkazu . To znamená, že místo toho , aby v InsertCommand
a UpdateCommand
byly všechny sloupce Products, jsou v SelectCommand
parametru zadány pouze sloupce (less ProductID
), které se vynechají, protože se jedná o IDENTITY
sloupec, jehož hodnotu nelze při úpravách změnit a který se automaticky přiřadí při vkládání). Kromě toho pro každý parametr ve InsertCommand
vlastnostech , UpdateCommand
a DeleteCommand
existují odpovídající parametry v InsertParameters
kolekcích , UpdateParameters
a DeleteParameters
.
Pokud chcete zapnout funkce úprav dat DetailsView, zaškrtněte v inteligentní značce možnosti Povolit vložení, Povolit úpravy a Povolit odstranění. Tím se přidá commandfield s jeho vlastnostmi ShowInsertButton
, ShowEditButton
a ShowDeleteButton
nastavenými na True
.
Přejděte na stránku v prohlížeči a všimněte si tlačítek Upravit, Odstranit a Nový, která jsou součástí zobrazení DetailsView. Kliknutím na tlačítko Upravit změníTe DetailsView do režimu úprav, který zobrazí každou BoundField, jejíž ReadOnly
vlastnost je nastavena na False
(výchozí) jako TextBox a CheckBoxField jako zaškrtávací políčko.
Obrázek 9: Výchozí rozhraní pro úpravy DetailsView (kliknutím zobrazíte obrázek v plné velikosti)
Podobně můžete odstranit aktuálně vybraný produkt nebo do systému přidat nový produkt. Vzhledem k tomu, že InsertCommand
příkaz funguje pouze se ProductName
sloupci , UnitPrice
a Discontinued
, ostatní sloupce mají NULL
při vložení přiřazenou buď výchozí hodnotu, nebo . Stejně jako u ObjectDataSource platí, že pokud v objektu InsertCommand
chybí sloupce databázové tabulky, které neumožňují NULL
s a nemají výchozí hodnotu, dojde při pokusu INSERT
o spuštění příkazu k chybě SQL.
Poznámka
Rozhraní pro vkládání a úpravy DetailsView chybí jakýkoli druh přizpůsobení nebo ověření. Chcete-li přidat ověřovací ovládací prvky nebo přizpůsobit rozhraní, musíte převést BoundFields na TemplateFields. Další informace najdete v kurzech Přidání ověřovacích ovládacích prvků do úprav a vkládání rozhraní a Přizpůsobení rozhraní pro úpravy dat .
Mějte také na paměti, že pro aktualizaci a odstranění DetailsView používá aktuální hodnotu produktu DataKey
, která je k dispozici pouze v případě, že DataKeyNames
je vlastnost nakonfigurována. Pokud se zdá, že úpravy nebo odstranění nemají žádný vliv, ujistěte se, že je vlastnost nastavená DataKeyNames
.
Omezení automatického generování příkazů SQL
Vzhledem k tomu, že možnost Generovat INSERT
příkazy , UPDATE
a DELETE
je k dispozici pouze při výběru sloupců z tabulky, u složitějších dotazů budete muset napsat vlastní INSERT
příkazy , UPDATE
a DELETE
jako jsme to udělali v kroku 1. Příkazy SQL SELECT
obvykle používají JOIN
s k vrácení dat z jedné nebo více vyhledávacích tabulek pro účely zobrazení (například k vrácení Categories
pole tabulky CategoryName
při zobrazení informací o produktu). Zároveň můžeme uživateli povolit úpravy, aktualizaci nebo vložení dat do základní tabulky (Products
v tomto případě).
I když je INSERT
možné příkazy , UPDATE
a DELETE
zadat ručně, zvažte následující tip pro úsporu času. Zpočátku nastavte SqlDataSource tak, aby načítá data pouze z Products
tabulky. Pomocí obrazovky Průvodce konfigurací zdroje dat Zadejte sloupce z tabulky nebo zobrazení můžete automaticky vygenerovat INSERT
příkazy , UPDATE
a DELETE
. Po dokončení průvodce pak zvolte konfiguraci SelectQuery z okno Vlastnosti (nebo se můžete vrátit k průvodci Konfigurovat zdroj dat, ale použijte možnost Zadat vlastní příkaz SQL nebo uloženou proceduru). Potom aktualizujte SELECT
příkaz tak, aby zahrnoval syntaxi JOIN
. Tato technika nabízí výhody úspory času automaticky vygenerovanými příkazy SQL a umožňuje více přizpůsobené SELECT
příkazy.
Dalším omezením automatického generování INSERT
příkazů , UPDATE
a DELETE
je to, že sloupce v INSERT
příkazech a UPDATE
jsou založené na sloupcích vrácených příkazem SELECT
. Možná ale budeme muset aktualizovat nebo vložit více nebo méně polí. Například v příkladu z kroku 2 možná chceme, aby UnitPrice
rozhraní BoundField bylo jen pro čtení. V takovém případě by se neměl zobrazovat UpdateCommand
v . Nebo můžeme chtít nastavit hodnotu pole tabulky, které se nezobrazuje v GridView. Například při přidávání nového záznamu můžeme chtít, aby byla hodnota nastavená QuantityPerUnit
na TODO .
Pokud jsou taková přizpůsobení vyžadována, musíte je provést ručně, a to buď prostřednictvím okno Vlastnosti, možnosti Zadat vlastní příkaz SQL nebo uloženou proceduru v průvodci, nebo prostřednictvím deklarativní syntaxe.
Poznámka
Při přidávání parametrů, které nemají odpovídající pole v datovém webovém ovládacím prvku, mějte na paměti, že těmto hodnotám parametrů bude nutné nějakým způsobem přiřadit hodnoty. Tyto hodnoty můžou být: pevně zakódované přímo v InsertCommand
nebo UpdateCommand
; můžou pocházet z nějakého předdefinovaného zdroje (řetězec dotazu, stav relace, webové ovládací prvky na stránce atd.), nebo je možné je přiřadit programově, jak jsme viděli v předchozím kurzu.
Souhrn
Aby webové ovládací prvky dat mohly využívat své integrované funkce vkládání, úprav a odstraňování, musí ovládací prvek zdroje dat, ke kterým jsou vázány, takovou funkci nabízet. Pro SqlDataSource to znamená, že INSERT
příkazy , UPDATE
a DELETE
SQL musí být přiřazeny k vlastnostem InsertCommand
, UpdateCommand
a DeleteCommand
. Tyto vlastnosti a odpovídající kolekce parametrů lze přidat ručně nebo automaticky vygenerovat prostřednictvím průvodce Konfigurovat zdroj dat. V tomto kurzu jsme prozkoumali obě techniky.
Použití optimistické souběžnosti s objectDataSource jsme prozkoumali v kurzu Implementace optimistické souběžnosti . Ovládací prvek SqlDataSource také poskytuje podporu optimistické souběžnosti. Jak je uvedeno v kroku 2, při automatickém generování INSERT
příkazů , UPDATE
a DELETE
nabízí průvodce možnost Použít optimistickou souběžnost. Jak uvidíme v dalším kurzu, použití optimistické souběžnosti s SqlDataSource upraví WHERE
klauzule v UPDATE
příkazech a DELETE
tak, aby se zajistilo, že se hodnoty pro ostatní sloupce nezměnily od posledního zobrazení dat na stránce.
Všechno nejlepší na programování!
O autorovi
Scott Mitchell, autor sedmi knih o ASP/ASP.NET a zakladatel 4GuysFromRolla.com, pracuje s webovými technologiemi Microsoftu od roku 1998. Scott pracuje jako nezávislý konzultant, školitel a spisovatel. Jeho nejnovější kniha je Sams Teach Yourself ASP.NET 2.0 in 24 Hours. Můžete ho zastihnout na mitchell@4GuysFromRolla.comadrese . nebo prostřednictvím jeho blogu, který najdete na adrese http://ScottOnWriting.NET.