Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
által Scott Mitchell
Az előző oktatóanyagokban az ObjectDataSource vezérlővel teljesen elválasztottuk a bemutató réteget az Adatelérési rétegtől. Ebből az oktatóanyagból megtudhatja, hogyan használható az SqlDataSource vezérlő olyan egyszerű alkalmazásokhoz, amelyekhez nem szükséges a bemutató és az adathozzáférés ilyen szigorú elkülönítése.
Bevezetés
Az eddig megvizsgált oktatóanyagok mindegyike többrétegű architektúrát használt, amely bemutató, üzleti logika és adatelérési rétegekből áll. Az adatelérési réteget (DAL) az első oktatóanyag (Adatelérési réteg létrehozása) és a második üzleti logikai réteg (Üzleti logikai réteg létrehozása) hozta létre. Az Adatok megjelenítése az ObjectDataSource oktatóanyaggal kezdődően láthattuk, hogyan használhatja ASP.NET 2.0-s új ObjectDataSource-vezérlőt a bemutatóréteg architektúrájával való deklaratív interfészhez.
Bár az eddigi oktatóanyagok mindegyike az architektúrát használta az adatok kezelésére, az adatbázisadatok közvetlenül egy ASP.NET oldalról is elérhetők, szúrhatóak be, frissíthetők és törölhetők, megkerülve az architektúrát. Ezzel közvetlenül a weblapra helyezi az adott adatbázis-lekérdezéseket és üzleti logikát. A kellően nagy vagy összetett alkalmazások esetében a rétegzett architektúra tervezése, megvalósítása és használata létfontosságú az alkalmazás sikeressége, frissíthetősége és karbantarthatósága szempontjából. A robusztus architektúra fejlesztése azonban szükségtelen lehet, ha rendkívül egyszerű, egyszeri alkalmazásokat hoz létre.
A ASP.NET 2.0 öt beépített adatforrás-vezérlőt biztosít: SqlDataSource, AccessDataSource, ObjectDataSource, XmlDataSource és SiteMapDataSource. Az SqlDataSource segítségével közvetlenül egy relációs adatbázisból, például a Microsoft SQL Serverből, a Microsoft Accessből, az Oracle-ből, a MySQL-ből és más adatokhoz lehet hozzáférni és módosítani az adatokat. Ebben az oktatóanyagban és a következő háromban megvizsgáljuk, hogyan használható az SqlDataSource vezérlő, hogyan kérdezhetők le és szűrhetők az adatbázisadatok, valamint hogyan használhatjuk az SqlDataSource-t adatok beszúrására, frissítésére és törlésére.
1. ábra: ASP.NET 2.0 öt Built-In adatforrás-vezérlőt tartalmaz
Az ObjectDataSource és az SqlDataSource összehasonlítása
Elméletileg az ObjectDataSource és az SqlDataSource vezérlők is egyszerűen az adatok proxyi. Ahogy az ObjectDataSource oktatóanyagban az Adatok megjelenítése című oktatóanyagban is bemutattuk, az ObjectDataSource olyan tulajdonságokkal rendelkezik, amelyek azt az objektumtípust jelölik, amely az adatokat adja meg, valamint azokat a metódusokat, amelyekkel adatokat lehet kiválasztani, beszúrni, frissíteni és törölni az alapul szolgáló objektumtípusból. Miután konfigurálta az ObjectDataSource tulajdonságait, egy adat-webvezérlő, például a GridView, a DetailsView vagy a DataList, az ObjectDataSource- Select()
Insert()
Delete()
és Update()
metódusok használatával a vezérlőhöz köthető az alapul szolgáló architektúrával való interakcióhoz.
Az SqlDataSource ugyanazt a funkciót biztosítja, de objektumtár helyett egy relációs adatbázison működik. Az SqlDataSource-nal meg kell adnunk az adatbázis kapcsolati sztringét és az alkalmi SQL-lekérdezéseket vagy tárolt eljárásokat az adatok beszúrásához, frissítéséhez, törléséhez és lekéréséhez. A meghíváskor az SqlDataSource-k Select()
Insert()
, és Update()
Delete()
metódusok csatlakoznak a megadott adatbázishoz, és kibocsátják a megfelelő SQL-lekérdezést. Az alábbi ábrán látható, hogy ezek a metódusok végzik az adatbázishoz való csatlakozást, a lekérdezés kiadását és az eredmények visszaadását.
2. ábra: Az SqlDataSource az adatbázis proxyjaként szolgál
Megjegyzés:
Ebben az oktatóanyagban az adatok adatbázisból való lekérésére összpontosítunk. Az Adatok beszúrása, frissítése és törlése az SqlDataSource Control oktatóanyagával című oktatóanyagban megtudhatja, hogyan konfigurálhatja az SqlDataSource-t a beszúrás, a frissítés és a törlés támogatására.
Az SqlDataSource és az AccessDataSource vezérlői
Az SqlDataSource vezérlőn kívül a ASP.NET 2.0 tartalmaz egy AccessDataSource-vezérlőt is. Ez a két különböző vezérlő a 2.0-s ASP.NET számos fejlesztőt arra késztet, hogy azt gyanítsa, hogy az AccessDataSource vezérlő kizárólag a Microsoft Access és a Kizárólag a Microsoft SQL Serverrel való együttműködésre tervezett SqlDataSource vezérlővel való együttműködésre lett tervezve. Bár az AccessDataSource kifejezetten a Microsoft Accesshez készült, az SqlDataSource vezérlő minden relációs adatbázissal működik, amely a .NET-en keresztül érhető el. Ide tartoznak többek között az OleDb- vagy ODBC-kompatibilis adattárak, például a Microsoft SQL Server, a Microsoft Access, az Oracle, az Informix, a MySQL és a PostgreSQL.
Az AccessDataSource és az SqlDataSource vezérlők közötti egyetlen különbség az adatbázis kapcsolati adatainak megadása. Az AccessDataSource-vezérlőnek csak az Access-adatbázisfájl elérési útjára van szüksége. Az SqlDataSource-hoz viszont teljes kapcsolati sztringre van szükség.
1. lépés: Az SqlDataSource-weblapok létrehozása
Mielőtt elkezdenénk megvizsgálni, hogyan dolgozhatunk közvetlenül adatbázisadatokkal az SqlDataSource vezérlővel, először szánjunk egy kis időt arra, hogy létrehozzuk a webhelyprojekt ASP.NET lapjait, amelyekre szükségünk lesz az oktatóanyaghoz és a következő háromhoz. Első lépésként adjon hozzá egy új mappát.SqlDataSource
Ezután adja hozzá a következő ASP.NET lapokat a mappához, és mindenképpen társítsa az egyes lapokat a Site.master
mesterlaphoz:
Default.aspx
Querying.aspx
ParameterizedQueries.aspx
InsertUpdateDelete.aspx
OptimisticConcurrency.aspx
3. ábra: A SqlDataSource-Related oktatóanyagok ASP.NET lapjainak hozzáadása
A többi mappához Default.aspx
hasonlóan a SqlDataSource
mappában is a szakasz oktatóanyagai jelennek meg. Ne feledje, hogy a SectionLevelTutorialListing.ascx
Felhasználói vezérlő biztosítja ezt a funkciót. Ezért húzza ezt a felhasználói vezérlőt a Megoldáskezelőből a lap tervezési nézetébe.
4. ábra: A felhasználói vezérlő SectionLevelTutorialListing.ascx
hozzáadása Default.aspx
(ide kattintva megtekintheti a teljes méretű képet)
Végül adja hozzá ezt a négy lapot bejegyzésként a Web.sitemap
fájlhoz. Pontosabban adja hozzá az alábbi korrektúrát az Egyéni gombok hozzáadása a DataListhez és az Ismétlőhöz <siteMapNode>
után:
<siteMapNode url="~/SqlDataSource/Default.aspx"
title="Using the SqlDataSource Control"
description="Work directly with database data using the SqlDataSource control.">
<siteMapNode url="~/SqlDataSource/Querying.aspx" title="Retrieving Database Data"
description="Examines how to query data from a database that can then be
displayed through a data Web control."/>
<siteMapNode url="~/SqlDataSource/ParameterizedQueries.aspx"
title="Parameterized Queries"
description="Learn how to specify parameterized WHERE clauses in the
SqlDataSource's SELECT statement." />
<siteMapNode url="~/SqlDataSource/InsertUpdateDelete.aspx"
title="Inserting, Updating, and Deleting Database Data"
description="See how to configure the SqlDataSource to include INSERT, UPDATE,
and DELETE statements." />
<siteMapNode url="~/SqlDataSource/OptimisticConcurrency.aspx"
title="Using Optimistic Concurrency"
description="Explore how to augment the SqlDataSource to include support for
optimistic concurrency." />
</siteMapNode>
A frissítés Web.sitemap
után szánjon egy kis időt az oktatóanyagok webhelyének megtekintésére egy böngészőben. A bal oldali menü mostantól tartalmazza az oktatóanyagok szerkesztéséhez, beszúrásához és törléséhez szükséges elemeket.
5. ábra: A webhelytérkép mostantól tartalmazza az SqlDataSource-oktatóanyagok bejegyzéseit
2. lépés: Az SqlDataSource-vezérlő hozzáadása és konfigurálása
Először nyissa meg a Querying.aspx
lapot a SqlDataSource
mappában, és váltson Tervező nézetre. Húzzon egy SqlDataSource-vezérlőt az eszközkészletből a Tervezőre, és állítsa be a ID
-t ProductsDataSource
-re. Az ObjectDataSource-hoz hasonlóan az SqlDataSource sem hoz létre renderelt kimenetet, ezért szürke mezőként jelenik meg a tervezőfelületen. Az SqlDataSource konfigurálásához kattintson az SqlDataSource intelligens címkéjének Adatforrás konfigurálása hivatkozására.
6. ábra: Kattintson az Adatforrás konfigurálása hivatkozásra az SqlDataSource intelligens címkéjén
Ekkor megjelenik az SqlDataSource vezérlő Adatforrás konfigurálása varázslója. Bár a varázsló lépései eltérnek az ObjectDataSource vezérlőitől, a cél ugyanaz, hogy megadja az adatforráson keresztüli adatok beolvasásának, beszúrásának, frissítésének és törlésének részleteit. Az SqlDataSource esetében ez azt jelenti, hogy meg kell adni a mögöttes adatbázist, és meg kell adni az alkalmi SQL-utasításokat vagy a tárolt eljárásokat.
Az első varázsló lépése az adatbázis megadását kéri tőlünk. A legördülő lista tartalmazza a webalkalmazás mappájában App_Data
található adatbázisokat, valamint a Kiszolgálókezelő Adatkapcsolatok csomópontjára felvett adatbázisokat. Mivel már hozzáadtunk egy kapcsolati sztringet a NORTHWIND.MDF
mappában lévő adatbázishoz a App_Data
projektfájlhozWeb.config
, a legördülő lista tartalmazza az adott kapcsolati sztringre mutató hivatkozást. NORTHWINDConnectionString
Válassza ki ezt az elemet a legördülő listából, és kattintson a Tovább gombra.
7. ábra: Válasszon a NORTHWINDConnectionString
Drop-Down listából
Az adatbázis kiválasztása után a varázsló megkéri a lekérdezést, hogy adja vissza az adatokat. Megadhatjuk egy tábla vagy nézet visszaadandó oszlopait, vagy megadhatunk egy egyéni SQL-utasítást, vagy megadhatunk egy tárolt eljárást. A lehetőségek között válthat az Egyéni SQL-utasítás vagy tárolt eljárás megadása, illetve a Táblázat vagy nézet oszlopainak megadása választógombok használatával.
Megjegyzés:
Ebben az első példában használjuk az Oszlopok megadása egy táblából vagy nézetből opciót. Az oktatóanyag későbbi részében visszatérünk a varázslóhoz, és megismerkedünk az Egyéni SQL-utasítás vagy a tárolt eljárás megadása lehetőséggel.
"A 8. ábra az 'Select Utasítás Konfigurálása' képernyőt mutatja be, amikor ki van választva a 'Tábla vagy nézet oszlopainak megadása' kapcsológomb." A legördülő lista a Northwind-adatbázisban lévő táblákat és nézeteket tartalmazza, a kijelölt táblázat vagy nézet oszlopai pedig az alábbi jelölőnégyzetlistában jelennek meg. Ebben a példában adja vissza a táblából a ProductID
, ProductName
és UnitPrice
az Products
oszlopokat. A 8. ábrán látható, hogy a kijelölések elvégzése után a varázsló megjeleníti az eredményként kapott SQL-utasítást SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]
.
8. ábra: Adatok visszaadása a Products
táblából
Miután konfigurálta a varázslót, hogy a ProductID
táblából visszaadja a ProductName
, UnitPrice
és Products
oszlopokat, kattintson a Tovább gombra. Ez az utolsó képernyő lehetőséget biztosít az előző lépésben konfigurált lekérdezés eredményeinek vizsgálatára. A Lekérdezés tesztelése gombra kattintva végrehajtja a konfigurált utasítást SELECT
, és megjeleníti az eredményeket egy rácson.
9. ábra: Kattintson a Lekérdezés tesztelése gombra a lekérdezés áttekintéséhez SELECT
A varázsló befejezéséhez kattintson a Befejezés gombra.
Az ObjectDataSource-hoz hasonlóan az SqlDataSource varázslója is csak értékeket rendel a vezérlő tulajdonságaihoz, nevezetesen a ConnectionString
SelectCommand
tulajdonságokhoz. A varázsló befejezése után az SqlDataSource-vezérlő deklaratív korrektúrája az alábbihoz hasonlóan fog kinézni:
<asp:SqlDataSource ID="ProductsDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]">
</asp:SqlDataSource>
A ConnectionString
tulajdonság információt nyújt az adatbázishoz való csatlakozásról. Ez a tulajdonság hozzárendelhető egy teljes, rögzített kapcsolati sztringértékhez, vagy egy kapcsolati sztringre mutathat a következőben Web.config
: . Egy kapcsolati sztring értékére való hivatkozáshoz a Web.config-ban használja a <%$ expressionPrefix:expressionValue %>
szintaxist. Az expressionPrefix általában ConnectionStrings, és az expressionValue a kapcsolati sztring neve az Web.config
<connectionStrings>
szakaszban. A szintaxissal azonban hivatkozhat az erőforrásfájlok elemeire <appSettings>
vagy tartalmára. A szintaxisról további információt a ASP.NET Kifejezések áttekintése című témakörben talál.
A SelectCommand
tulajdonság megadja az adatokat visszaadó alkalmi SQL-utasítást vagy tárolt eljárást.
3. lépés: Data Web Control hozzáadása és kötése az SqlDataSource-hoz
Miután az SqlDataSource konfigurálva lett, adat-webvezérlőhöz, például GridView-hoz vagy DetailsView-hoz is köthető. Ebben az oktatóanyagban jelenítsük meg az adatokat egy GridView-ban. Az eszközkészletből húzzon egy GridView-t a lapra, és kösse az ProductsDataSource
SqlDataSource-hoz az adatforrás kiválasztásával a GridView intelligens címkéjének legördülő listájából.
10. ábra: GridView hozzáadása és kötése az SqlDataSource vezérlőhöz (kattintson ide a teljes méretű kép megtekintéséhez)
Miután kiválasztotta az SqlDataSource vezérlőt a GridView intelligens címkéjének legördülő listájából, a Visual Studio automatikusan hozzáad egy BoundField vagy CheckBoxField mezőt a GridView-hoz az adatforrás-vezérlő által visszaadott oszlopokhoz. Mivel az SqlDataSource három adatbázisoszlopot ProductID
ad vissza, ProductName
és UnitPrice
három mező van a GridView-ban.
Szánjon egy kis időt a GridView három BoundFields konfigurálására. Módosítsa a ProductName
mező s tulajdonságát HeaderText
terméknévre, az UnitPrice
s mező értékét pedig Ár értékre. Formázza a UnitPrice
mezőt pénznemként. A módosítások elvégzése után a GridView deklaratív korrektúrája a következőhöz hasonlóan fog kinézni:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataKeyNames="ProductID" DataSourceID="ProductsDataSource"
EnableViewState="False">
<Columns>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
<asp:BoundField DataField="ProductName" HeaderText="Product Name"
SortExpression="ProductName" />
<asp:BoundField DataField="UnitPrice" HeaderText="Price"
SortExpression="UnitPrice" DataFormatString="{0:c}"
HtmlEncode="False" />
</Columns>
</asp:GridView>
Látogasson el erre a lapra egy böngészőben. Ahogy a 11. ábra mutatja, a GridView felsorolja az egyes termékek és ProductID
ProductName
UnitPrice
értékek listáját.
11. ábra: A GridView megjeleníti az egyes termékek és ProductID
ProductName
UnitPrice
értékek értékét (kattintással megtekintheti a teljes méretű képet)
Amikor megtekinti a lapot, a GridView meghívja az adatforrás-vezérlő metódusát Select()
. Amikor az ObjectDataSource vezérlőt használtuk, az ProductsBLL
osztály GetProducts()
metódusát hívtuk meg. Az SqlDataSource-nal azonban a Select()
metódus kapcsolatot létesít a megadott adatbázissal, és kiadja a SelectCommand
-t (SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]
ebben a példában). Az SqlDataSource visszaadja az eredményeket, amelyeket a GridView majd számba vesz, és létrehoz egy sort a GridView-ban minden visszaadott adatbázisrekordhoz.
A Built-In Data Web Control funkciói és az SqlDataSource-vezérlő
Általánosságban elmondható, hogy az adatwebhez tartozó funkciók a lapozást, a rendezést, a szerkesztést, a törlést, a beszúrást és így tovább, az adatweb vezérlőre vonatkoznak, és nem függnek a használt adatforrás-vezérlőtől. Ez azt jelzi, hogy a GridView használhatja a beépített lapozási, rendezési, szerkesztési és törlési funkcióját, függetlenül attól, hogy objectDataSource-hoz vagy SqlDataSource-hoz van-e kötve. Bizonyos adat-webvezérlő funkciók azonban érzékenyek a használt adatforrás-vezérlőre vagy az adatforrás-vezérlő konfigurációjára.
A Nagy mennyiségű adat hatékony lapozása oktatóanyagban például azt mutattuk be, hogy az adat-webvezérlők lapozási logikája alapértelmezés szerint hogyan adja vissza az alapul szolgáló adatforrás összes rekordját, majd csak a rekordok megfelelő részhalmazát jeleníti meg az aktuális lapindex és az oldalonként megjelenítendő rekordok száma alapján. Ez a modell nem hatékony, amikor kellően nagy eredményhalmazokon lapozunk át. Szerencsére az ObjectDataSource konfigurálható úgy, hogy támogassa az egyéni lapozást, ami csak a megjelenítendő rekordok pontos részhalmazát adja vissza. Az SqlDataSource vezérlő azonban nem rendelkezik az egyéni lapozás implementálásának tulajdonságaival.
A lapozás és a rendezés egy másik finomság az SqlDataSource-nal jön létre. Az SqlDataSource-ból visszaadott adatok alapértelmezés szerint lapozásra vagy rendezésre is használhatók a GridView-on keresztül. Ennek bemutatásához ellenőrizze a GridView intelligens címkéjében Querying.aspx
a Lapozás engedélyezése és a Rendezés engedélyezése lehetőséget, és ellenőrizze, hogy ez a várt módon működik-e.
A rendezés és a lapozás azért működik, mert az SqlDataSource lekéri az adatbázis adatait egy lazán beírt Adathalmazba. A lekérdezés által visszaadott rekordok teljes száma, amely a lapozás implementálásának lényeges aspektusa, az Adatkészletből állapítható meg. Emellett az Adathalmaz eredményei egy DataView-on keresztül is rendezhetők. Ezeket a képességeket az SqlDataSource automatikusan használja, amikor a GridView lapozott vagy rendezett adatokat kér.
Az SqlDataSource úgy konfigurálható, hogy DataSet helyett DataReadert adjon vissza, ha tulajdonságát az alapértelmezett értékről DataSourceMode
a következőre módosítjaDataSet
. A DataReader használata akkor lehet előnyben, ha az SqlDataSource eredményeit egy meglévő, DataReaderre váró kódnak továbbítja. Továbbá, mivel a DataReaders lényegesen egyszerűbb objektumok, mint a DataSets, jobb teljesítményt nyújtanak. Ha azonban módosítja ezt a módosítást, az adat webes vezérlője sem rendezést, sem lapot nem tud biztosítani, mivel az SqlDataSource nem tudja megállapítani, hogy a lekérdezés hány rekordot ad vissza, és a DataReader nem kínál semmilyen technikát a visszaadott adatok rendezéséhez.
4. lépés: Egyéni SQL-utasítás vagy tárolt eljárás használata
Az SqlDataSource-vezérlő konfigurálásakor az adatok visszaadására használt lekérdezés két módszer egyikében adható meg egyéni SQL-utasításként vagy tárolt eljárásként, vagy egy meglévő tábla vagy nézet oszlopaként. A 2. lépésben megvizsgáltuk a táblázat oszlopainak kiválasztását Products
. Nézzük meg egy egyéni SQL-utasítás használatát.
Vegyen fel egy másik GridView-vezérlőt a Querying.aspx
lapra, és válasszon új adatforrást az intelligens címke legördülő listájából. Ezután jelezze, hogy az adatok egy adatbázisból lesznek lekértek, ezzel létrehoz egy új SqlDataSource-vezérlőt. Nevezze el a vezérlőt ProductsWithCategoryInfoDataSource
.
12. ábra: Új SqlDataSource-vezérlő létrehozása elnevezve ProductsWithCategoryInfoDataSource
A következő képernyő arra kér minket, hogy adja meg az adatbázist. Ahogy a 7. ábrán is, válassza ki a NORTHWINDConnectionString
legördülő listából, és kattintson a Tovább gombra. Az Utasítás kiválasztása képernyőn válassza az Egyéni SQL-utasítás vagy a tárolt eljárás választógombot, majd kattintson a Tovább gombra. Ekkor megjelenik az Egyéni utasítások vagy tárolt eljárások definiálása képernyő, amely a SELECT, UPDATE, INSERT és DELETE címkével ellátott lapokat kínálja. Minden lapon beírhat egy egyéni SQL-utasítást a szövegmezőbe, vagy választhat egy tárolt eljárást a legördülő listából. Ebben az oktatóanyagban egy egyéni SQL-utasítás beírását vizsgáljuk meg; A következő oktatóanyag egy tárolt eljárást használó példát tartalmaz.
13. ábra: Egyéni SQL-utasítás megadása vagy tárolt eljárás kiválasztása
Az egyéni SQL-utasítás kézzel beírható a szövegmezőbe, vagy grafikusan is létrehozható a Lekérdezésszerkesztő gombra kattintva. A Lekérdezésszerkesztőből vagy a szövegmezőből használja a következő lekérdezést a ProductID
és ProductName
mezők visszaadásához a Products
táblából a JOIN
segítségével a termék CategoryName
-jának lekéréséhez a Categories
táblából.
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Categories
INNER JOIN Products ON
Categories.CategoryID = Products.CategoryID
14. ábra: Grafikusan is létrehozhatja a lekérdezést a Lekérdezésszerkesztővel
A lekérdezés megadása után a Tovább gombra kattintva lépjen a Lekérdezés tesztelése képernyőre. Kattintson a Befejezés gombra az SqlDataSource varázsló befejezéséhez.
A varázsló befejezése után a GridView három BoundFields elemmel fog bővülni, amelyek megjelenítik a lekérdezésből visszaadott ProductID
, ProductName
, és CategoryName
oszlopokat, melyek a következő deklaratív jelölést eredményezik:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
DataKeyNames="ProductID" DataSourceID="ProductsWithCategoryInfoDataSource"
EnableViewState="False">
<Columns>
<asp:BoundField DataField="ProductID" HeaderText="ProductID"
InsertVisible="False" ReadOnly="True" SortExpression="ProductID" />
<asp:BoundField DataField="ProductName" HeaderText="ProductName"
SortExpression="ProductName" />
<asp:BoundField DataField="CategoryName" HeaderText="CategoryName"
SortExpression="CategoryName" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="ProductsWithCategoryInfoDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
SelectCommand="
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Categories
INNER JOIN Products ON Categories.CategoryID = Products.CategoryID">
</asp:SqlDataSource>
15. ábra: A GridView megjeleníti az egyes termékek azonosítóját, nevét és társított kategórianevét (kattintással megtekintheti a teljes méretű képet)
Összefoglalás
Ebben az oktatóanyagban bemutattuk, hogyan kérdezhet le és jeleníthet meg adatokat az SqlDataSource vezérlővel. Az ObjectDataSource-hoz hasonlóan az SqlDataSource is proxyként szolgál, és deklaratív megközelítést biztosít az adatok eléréséhez. Tulajdonságai határozzák meg a csatlakoztatni kívánt adatbázist és a végrehajtandó SQL-lekérdezést SELECT
; ezek a Tulajdonságok ablakban vagy az Adatforrás konfigurálása varázslóval adhatók meg.
Az SELECT
oktatóanyagban megvizsgált lekérdezési példák a megadott lekérdezés összes rekordját visszaadták. Az SqlDataSource vezérlő azonban tartalmazhat olyan WHERE
záradékot, amelynek értékei programozott módon vannak hozzárendelve, vagy automatikusan lekértek egy adott forrásból. A következő oktatóanyagban megvizsgáljuk, hogyan hozhat létre és használhat paraméteres lekérdezéseket.
Boldog programozást!
További olvasás
Az oktatóanyagban tárgyalt témakörökről az alábbi forrásokban talál további információt:
- Az SqlDataSource vezérlő áttekintése
- ASP.NET gyorstalpaló oktatóanyagok: Az SqlDataSource vezérlő
-
A Web.config
<connectionStrings>
elem - Adatbázis kapcsolati karakterlánc hivatkozás
Tudnivalók a szerzőről
Scott Mitchell, hét ASP/ASP.NET-könyv szerzője és a 4GuysFromRolla.com alapítója, 1998 óta dolgozik a Microsoft webtechnológiáival. Scott független tanácsadóként, edzőként és íróként dolgozik. Legújabb könyve Sams Tanuld meg ASP.NET 2.0 24 óra alatt. Ő itt elérhető mitchell@4GuysFromRolla.com.
Külön köszönet
Ezt az oktatóanyag-sorozatot sok hasznos véleményező áttekintette. Az oktatóanyag fő véleményezői Susan Connery, Bernadette Leigh és David Suru voltak. Szeretné áttekinteni a közelgő MSDN-cikkeimet? Ha igen, írj egy sort a mitchell@4GuysFromRolla.com-ra.