Sdílet prostřednictvím


Vkládání, aktualizace a odstraňování dat ovládacím prvkem SqlDataSource (VB)

Scott Mitchell

Stáhnout PDF

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 INSERTpříkazy SQL , UPDATEa 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:

  1. ConnectionString, která určuje, do které databáze se má dotaz odeslat, a
  2. SelectCommand, 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 INSERTpříkazů , UPDATEa DELETE SQL v podstatě stejným způsobem. Jednoduše přiřaďte InsertCommandvlastnosti UPDATEINSERT, UpdateCommanda DeleteCommand , a příkazů SQL, které DELETE se mají spustit. Pokud příkazy mají parametry (jako obvykle), zahrňte je do InsertParameterskolekcí , UpdateParametersa DeleteParameters .

InsertCommandPo zadání hodnoty , UpdateCommandnebo 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.aspxnástroje otestujte stránku v prohlížeči. Měly by se zobrazit hodnoty ProductIDsloupců , ProductNamea UnitPrice pro všechny záznamy v tabulce Products databáze.

Všechny produkty jsou uvedené, seřazené podle ID produktu

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 ve DeleteCommand vlastnostech a DeleteParameters

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.aspxna 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.

Snímek obrazovky znázorňující okno Vlastnosti ProductsDataSource s vybranou vlastností DeleteQuery

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ů.

Snímek obrazovky znázorňující okno Command and Parameter Editor s parametrem <span class=@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ů.

Každý řádek GridView teď obsahuje tlačítko Odstranit.

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 @ProductIDhodnotu . 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.

Kliknutí na tlačítko Odstranit v GridView vyvolá Metodu Delete() SqlDataSource s Delete()

Obrázek 5: Kliknutí na tlačítko Odstranit v GridView vyvolá metodu SqlDataSource s Delete()

Krok 2: Automatické generování INSERTpříkazů , UPDATEa DELETE

Při zkoumání INSERTkroku 1 je možné příkazy , UPDATEa 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 INSERTpříkazy , UPDATEa 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.

Vytvoření nového zdroje Dat Sql 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 ProductIDpolí zaškrtněte sloupce , ProductName, UnitPricea Discontinued .

Pomocí tabulky Products (Produkty) vrátí sloupce ProductID (ID Produktu), ProductName (NázevProduktu), UnitPrice (Cena za kus) a Discontinued (Ukončeno).

Obrázek 7: Použití Products tabulky, vrácení ProductIDsloupců , ProductName, UnitPricea Discontinued (kliknutím zobrazíte obrázek v plné velikosti)

Pokud chcete automaticky generovat INSERTpříkazy , UPDATEa DELETE na základě vybrané tabulky a sloupců, klikněte na tlačítko Upřesnit a zaškrtněte políčko Generovat INSERTpříkazy , UPDATEa DELETE .

Zaškrtněte políčko Generovat příkazy INSERT, UPDATE a DELETE.

Obrázek 8: Zaškrtnutí políčka Generovat INSERTpříkazy , UPDATEa DELETE

Zaškrtávací políčko Generovat INSERTpří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 INSERTpříkazy , UPDATEa 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 INSERTpříkazy , UPDATEa 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 ProductIDsloupce , ProductNamea 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 , InsertCommandUpdateCommanda 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é InsertCommandvlastnosti , UpdateCommanda 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 UpdateCommandbyly 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 InsertCommandvlastnostech , UpdateCommanda DeleteCommand existují odpovídající parametry v InsertParameterskolekcích , UpdateParametersa 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, ShowEditButtona 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.

Výchozí rozhraní pro úpravy DetailsView

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 ProductNamesloupci , UnitPricea 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 INSERTpříkazy , UPDATEa DELETE je k dispozici pouze při výběru sloupců z tabulky, u složitějších dotazů budete muset napsat vlastní INSERTpříkazy , UPDATEa 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 (Productsv tomto případě).

I když je INSERTmožné příkazy , UPDATEa 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 INSERTpříkazy , UPDATEa 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í INSERTpříkazů , UPDATEa 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 UpdateCommandv . 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 INSERTpříkazy , UPDATEa DELETE SQL musí být přiřazeny k vlastnostem InsertCommand, UpdateCommanda 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í INSERTpříkazů , UPDATEa 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.