SqlDataSource Denetimi ile Veri Sorgulama (C#)

tarafından Scott Mitchell

PDF’yi İndir

Önceki öğreticilerde, sunu katmanını Veri Erişimi katmanından tamamen ayırmak için ObjectDataSource denetimini kullandık. Bu öğreticiden başlayarak, SqlDataSource denetiminin sunu ve veri erişimi için bu kadar katı bir ayrım gerektirmeyen basit uygulamalar için nasıl kullanılabileceğini öğreneceğiz.

Giriş

Şimdiye kadar incelediğimiz tüm öğreticilerde sunu, İş Mantığı ve Veri Erişimi katmanlarından oluşan katmanlı bir mimari kullanılmıştır. Veri Erişim Katmanı (DAL), birinci öğreticide (Veri Erişim Katmanı Oluşturma) ve ikincisinde İş Mantığı Katmanı (İş Mantığı Katmanı Oluşturma) hazırlanmıştı. ObjectDataSource ile Verileri Görüntüleme öğreticisinden başlayarak, ASP.NET 2.0 sn yeni ObjectDataSource denetimini kullanarak sunu katmanından mimariyle bildirim temelli arabirim oluşturma işleminin nasıl yapıldığını gördük.

Şimdiye kadarki tüm öğreticiler verilerle çalışmak için mimariyi kullansa da, mimariyi atlayarak veritabanı verilerine doğrudan bir ASP.NET sayfasından erişmek, bunları eklemek, güncelleştirmek ve silmek de mümkündür. Bunun yapılması, belirli veritabanı sorgularını ve iş mantığını doğrudan web sayfasına yerleştirir. Yeterince büyük veya karmaşık uygulamalar için katmanlı mimarinin tasarlanması, uygulanması ve kullanılması, uygulamanın başarısı, güncelleştirilebilirliği ve sürdürülebilirliği açısından hayati önem taşır. Ancak, son derecede basit, tek seferlik uygulamalar oluştururken sağlam bir mimari geliştirmek gereksiz olabilir.

ASP.NET 2.0, SqlDataSource, AccessDataSource, ObjectDataSource, XmlDataSource ve SiteMapDataSource gibi beş yerleşik veri kaynağı denetimi sağlar. SqlDataSource; Microsoft SQL Server, Microsoft Access, Oracle, MySQL ve diğerleri dahil olmak üzere doğrudan ilişkisel veritabanından verilere erişmek ve bunları değiştirmek için kullanılabilir. Bu öğreticide ve sonraki üç öğreticide SqlDataSource denetimiyle çalışmayı, veritabanı verilerini sorgulamayı ve filtrelemeyi ve verileri eklemek, güncelleştirmek ve silmek için SqlDataSource'u kullanmayı inceleyeceğiz.

ASP.NET 2.0 Beş Built-In Veri Kaynağı Denetimi içerir

Şekil 1: ASP.NET 2.0 Beş Built-In Veri Kaynağı Denetimi içerir

ObjectDataSource ile SqlDataSource karşılaştırması

Kavramsal olarak, hem ObjectDataSource hem de SqlDataSource denetimleri yalnızca veri proxy'leridir. ObjectDataSource ile Veri Görüntüleme öğreticisinde açıklandığı gibi, ObjectDataSource'un verileri sağlayan nesne türünü ve temel alınan nesne türünden veri seçmek, eklemek, güncelleştirmek ve silmek için çağrılacak yöntemleri gösteren özellikleri vardır. ObjectDataSource'un özellikleri yapılandırıldıktan sonra, temel alınan mimariyle etkileşim kurmak için ObjectDataSource 'un Select(), , Insert()Delete()ve Update() yöntemlerini kullanarak GridView, DetailsView veya DataList gibi bir veri Web denetimi denetime bağlanabilir.

SqlDataSource aynı işlevselliği sağlar, ancak nesne kitaplığı yerine ilişkisel bir veritabanında çalışır. SqlDataSource ile veritabanı bağlantı dizesi ve verileri eklemek, güncelleştirmek, silmek ve almak için yürütülecek geçici SQL sorgularını veya saklı yordamları belirtmeliyiz. SqlDataSource'un Select(), Insert(), Update()ve Delete() yöntemleri çağrıldığında belirtilen veritabanına bağlanır ve uygun SQL sorgusunu yayımlar. Aşağıdaki diyagramda gösterildiği gibi, bu yöntemler veritabanına bağlanma, sorgu verme ve sonuçları döndürme gibi zahmetli işleri yapar.

SqlDataSource, Veritabanına Ara Sunucu Olarak Hizmet Eder

Şekil 2: SqlDataSource, Veritabanına Ara Sunucu olarak hizmet eder

Not

Bu öğreticide veritabanından veri almaya odaklanacağız. SqlDataSource Denetimi ile Veri Ekleme, Güncelleştirme ve Silme öğreticisinde, SqlDataSource'u ekleme, güncelleştirme ve silmeyi destekleyecek şekilde nasıl yapılandıracağımızı göreceğiz.

SqlDataSource ve AccessDataSource Denetimleri

SqlDataSource denetimine ek olarak, ASP.NET 2.0 bir AccessDataSource denetimi de içerir. Bu iki farklı denetim, AccessDataSource denetiminin yalnızca Microsoft SQL Server ile çalışmak üzere tasarlanmış SqlDataSource denetimiyle Microsoft Access ile çalışacak şekilde tasarlandığından şüphelenmek için ASP.NET 2.0'a yeni eklenen birçok geliştiriciye yol açar. AccessDataSource özellikle Microsoft Access ile çalışacak şekilde tasarlanmış olsa da, SqlDataSource denetimi .NET üzerinden erişilebilen tüm ilişkisel veritabanlarıyla çalışır. Buna Microsoft SQL Server, Microsoft Access, Oracle, Informix, MySQL ve PostgreSQL gibi OleDb veya ODBC uyumlu veri depoları dahildir.

AccessDataSource ile SqlDataSource denetimleri arasındaki tek fark, veritabanı bağlantı bilgilerinin nasıl belirtildiğidir. AccessDataSource denetimi yalnızca Access veritabanı dosyasının dosya yoluna ihtiyaç duyar. Öte yandan SqlDataSource tam bir bağlantı dizesi gerektirir.

1. Adım: SqlDataSource Web Sayfalarını Oluşturma

SqlDataSource denetimini kullanarak veritabanı verileriyle doğrudan nasıl çalışacağımızı keşfetmeye başlamadan önce, web sitesi projemizde bu öğretici ve sonraki üç öğretici için ihtiyacımız olacak ASP.NET sayfalarını oluşturmak için biraz zaman ayıralım. başlangıç olarak adlı SqlDataSourceyeni bir klasör ekleyin. Ardından, her sayfayı ana sayfayla Site.master ilişkilendirdiğinizden emin olarak aşağıdaki ASP.NET sayfalarını bu klasöre ekleyin:

  • Default.aspx
  • Querying.aspx
  • ParameterizedQueries.aspx
  • InsertUpdateDelete.aspx
  • OptimisticConcurrency.aspx

SqlDataSource-Related Öğreticileri için ASP.NET Sayfaları Ekleme

Şekil 3: SqlDataSource-Related Öğreticileri için ASP.NET Sayfaları Ekleme

Diğer klasörlerde olduğu gibi klasöründe Default.aspx de SqlDataSource bölümündeki öğreticiler listelenir. Kullanıcı Denetimi'nin SectionLevelTutorialListing.ascx bu işlevi sağladığını hatırlayın. Bu nedenle, bu Kullanıcı Denetimini Default.aspx Çözüm Gezgini sayfanın Tasarım görünümüne sürükleyerek öğesine ekleyin.

SectionLevelTutorialListing.ascx Kullanıcı Denetimini Default.aspx ekleme

Şekil 4: Kullanıcı Denetimini ekleme SectionLevelTutorialListing.ascxDefault.aspx (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Son olarak, bu dört sayfayı dosyaya Web.sitemap girdi olarak ekleyin. Özellikle, DataList ve Repeater'a <siteMapNode>Özel Düğmeler Eklendikten sonra aşağıdaki işaretlemeyi ekleyin:

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

güncelleştirdikten Web.sitemapsonra, öğreticiler web sitesini bir tarayıcı üzerinden görüntülemek için biraz zaman ayırın. Sol taraftaki menüde artık düzenleme, ekleme ve silme öğreticileri için öğeler bulunur.

Site Haritası Artık SqlDataSource Öğreticileri için Girdiler Içeriyor

Şekil 5: Site Haritası Artık SqlDataSource Öğreticileri için Girdiler Içeriyor

2. Adım: SqlDataSource Denetimini Ekleme ve Yapılandırma

İlk olarak klasördeki SqlDataSource sayfayı Querying.aspx açın ve Tasarım görünümüne geçin. Bir SqlDataSource denetimini Araç Kutusu'ndan Tasarım Aracı sürükleyin ve olarak IDProductsDataSourceayarlayın. ObjectDataSource'ta olduğu gibi, SqlDataSource işlenmiş çıkış üretmez ve bu nedenle tasarım yüzeyinde gri bir kutu olarak görünür. SqlDataSource'u yapılandırmak için SqlDataSource'un akıllı etiketinden Veri Kaynağını Yapılandır bağlantısına tıklayın.

SqlDataSource'un Akıllı Etiketinden Veri Yapılandırma Source Link tıklayın

Şekil 6: SqlDataSource'un Akıllı Etiketinden Veri Yapılandırma Source Link tıklayın

Bu, SqlDataSource denetiminin Veri Kaynağını Yapılandırma sihirbazını getirir. Sihirbazın adımları ObjectDataSource denetiminden farklı olsa da, veri kaynağı aracılığıyla veri alma, ekleme, güncelleştirme ve silme ayrıntılarını sağlamak için son hedef aynıdır. SqlDataSource için bu, kullanılacak temel veritabanını belirtmeyi ve geçici SQL deyimlerini veya saklı yordamları sağlamayı gerektirir.

İlk sihirbaz adımında veritabanı istenir. Açılan liste, web uygulamasının klasöründe bulunan veritabanlarını ve Sunucu Gezgini'ndeki App_Data Veri Connections düğümüne eklenmiş olan veritabanlarını içerir. Projemizin Web.config dosyasına klasöründeki NORTHWIND.MDFApp_Data veritabanı için zaten bir bağlantı dizesi eklediğimizden, açılan listede bu bağlantı dizesi bir başvuru yer alır. NORTHWINDConnectionString Açılan listeden bu öğeyi seçin ve İleri'ye tıklayın.

Drop-Down Listesinden NORTHWINDConnectionString'i seçin

Şekil 7: Drop-Down Listesinden öğesini seçin NORTHWINDConnectionString

Veritabanını seçtikten sonra sihirbaz sorgunun veri döndürmesini ister. Döndürülecek bir tablonun veya görünümün sütunlarını belirtebilir veya özel bir SQL deyimi girebilir ya da saklı yordam belirtebiliriz. Özel SQL deyimi veya saklı yordam belirtme ve Tablodaki sütunları belirtme veya radyo düğmelerini görüntüleme seçenekleri arasında geçiş yapabilirsiniz.

Not

Bu ilk örnekte, Tablo veya görünümden sütun belirtme seçeneğini kullanalım. Bu öğreticinin ilerleyen bölümlerinde sihirbaza dönüp Özel SQL deyimi veya saklı yordam belirtme seçeneğini keşfedeceğiz.

Şekil 8'de, Tablodaki sütunları belirtin veya radyoyu görüntüle düğmesi seçildiğinde Deyimi Seç ekranını gösterir. Açılan liste, Northwind veritabanındaki tablo ve görünüm kümesini içerir ve seçili tablo veya görünüm sütunları aşağıdaki onay kutusu listesinde görüntülenir. Bu örnekte, tablodan ProductID, ProductNameve UnitPrice sütunlarını Products döndürelim. Şekil 8'de gösterildiği gibi, bu seçimleri yaptıktan sonra sihirbaz sonuçta elde edilen SQL deyimini SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]gösterir.

Ürünler Tablosundan Veri Döndürme

Şekil 8: Tablodan Products Veri Döndürme

Sihirbazı tablodan , ProductNameve UnitPrice sütunlarını Products döndürecek ProductIDşekilde yapılandırdıktan sonra İleri düğmesine tıklayın. Bu son ekran, önceki adımda yapılandırılan sorgunun sonuçlarını inceleme fırsatı sağlar. Test Sorgusu düğmesine tıklanması, yapılandırılan SELECT deyimi yürütür ve sonuçları bir kılavuzda görüntüler.

SELECT Sorgunuzu Gözden Geçirmek için Sorguyu Test Et Düğmesine Tıklayın

Şekil 9: Sorgunuzu SELECT Gözden Geçirmek için Sorguyu Test Et Düğmesine Tıklayın

Sihirbazı tamamlamak için Son'a tıklayın.

ObjectDataSource'ta olduğu gibi, SqlDataSource sihirbazı da yalnızca ve SelectCommand özellikleri olmak üzere denetim özelliklerine ConnectionString değer atar. Sihirbazı tamamladıktan sonra SqlDataSource denetiminizin bildirim temelli işaretlemesi aşağıdakine benzer görünmelidir:

<asp:SqlDataSource ID="ProductsDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:NORTHWNDConnectionString %>"
    SelectCommand="SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]">
</asp:SqlDataSource>

ConnectionString özelliği veritabanına bağlanma hakkında bilgi sağlar. Bu özelliğe eksiksiz, sabit kodlanmış bir bağlantı dizesi değeri atanabilir veya içindeki Web.configbir bağlantı dizesi işaret edebilir. Web.config'da bağlantı dizesi bir değere başvurmak için söz dizimini <%$ expressionPrefix:expressionValue %>kullanın. Genellikle expressionPrefix ConnectionStrings, expressionValue ise Web.config<connectionStrings> bölümündeki bağlantı dizesinin adıdır. Ancak söz dizimi kaynak dosyalarından öğelere veya içeriğe başvurmak <appSettings> için kullanılabilir. Bu söz dizimi hakkında daha fazla bilgi için bkz. ASP.NET İfadelere Genel Bakış .

özelliği, SelectCommand verileri döndürmek için yürütülecek geçici SQL deyimini veya saklı yordamı belirtir.

3. Adım: Veri Web Denetimi Ekleme ve SqlDataSource'a Bağlama

SqlDataSource yapılandırıldıktan sonra GridView veya DetailsView gibi bir veri Web denetimine bağlanabilir. Bu öğretici için verileri GridView'da görüntüleyelim. Araç Kutusu'ndan bir GridView'ı sayfaya sürükleyin ve GridView'un akıllı etiketindeki açılan listeden veri kaynağını seçerek Bunu SqlDataSource'a bağlayın ProductsDataSource .

GridView ekleme ve SqlDataSource Denetimine Bağlama

Şekil 10: GridView Ekleme ve SqlDataSource Denetimine Bağlama (Tam boyutlu görüntüyü görüntülemek için tıklayın)

GridView'un akıllı etiketindeki açılan listeden SqlDataSource denetimini seçtikten sonra, Visual Studio veri kaynağı denetimi tarafından döndürülen her sütun için GridView'a otomatik olarak bir BoundField veya CheckBoxField ekler. SqlDataSource üç veritabanı sütunu ProductIDdöndürdüğünden , ProductNameve UnitPrice GridView'da üç alan vardır.

GridView'un üç BoundField'ini yapılandırmak için biraz zaman ayırın. ProductName Alanın HeaderText özelliğini Ürün Adı, alanı ise UnitPrice Price olarak değiştirin. Ayrıca alanı UnitPrice para birimi olarak biçimlendirin. Bu değişiklikleri yaptıktan sonra GridView'unuzun bildirim temelli işaretlemesi aşağıdakine benzer görünmelidir:

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

Bu sayfayı bir tarayıcı üzerinden ziyaret edin. Şekil 11'de ProductIDgösterildiği gibi GridView her ürünün , ProductNameve UnitPrice değerlerini listeler.

GridView Her Ürünün ProductID, ProductName ve UnitPrice Değerlerini Görüntüler

Şekil 11: GridView Her Ürünün ProductID, ProductNameve UnitPrice Değerlerini Görüntüler (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Sayfa ziyaret edildiğinde GridView veri kaynağı denetiminin yöntemini Select() çağırır. ObjectDataSource denetimini kullanırken bu, sınıfın GetProducts() yöntemi olarak adlandırılıyorduProductsBLL. AncakSelect(), SqlDataSource ile yöntemi belirtilen veritabanıyla bir bağlantı kurar ve (SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]bu örnekte) ile bağlantı SelectCommand kurar. SqlDataSource sonuçları döndürür. GridView daha sonra numaralandırılır ve döndürülen her veritabanı kaydı için GridView'da bir satır oluşturulur.

Built-In Veri Web Denetimi Özellikleri ve SqlDataSource Denetimi

Genel olarak, veri Web'inin doğasında yer alan özellikler sayfalama, sıralama, düzenleme, silme, ekleme gibi işlemleri veri Web denetimine özgüdür ve kullanılan veri kaynağı denetimine bağımlı değildir. Diğer bir ifadeyle GridView, bir ObjectDataSource'a mı yoksa SqlDataSource'a mı bağlı olduğunu öğrenmek için yerleşik disk belleğini, sıralamayı, düzenlemeyi ve silmeyi kullanabilir. Ancak, bazı veri Web denetimi özellikleri, kullanılmakta olan veri kaynağı denetimine veya veri kaynağı denetiminin yapılandırmasına duyarlıdır.

Örneğin, Büyük Miktarlarda Veri Üzerinden Verimli Bir Şekilde Sayfalama öğreticisinde, varsayılan olarak, veri Web denetimlerinin disk belleği mantığının temel alınan veri kaynağındaki tüm kayıtları nasıl döndürdüğüne ve ardından geçerli sayfa dizinine ve sayfa başına görüntülenecek kayıt sayısına göre yalnızca uygun kayıt alt kümesini görüntülemesine değindik. Bu model, yeterince büyük sonuç kümelerinde sayfalama yaparken son derece verimsizdir. Neyse ki ObjectDataSource, görüntülenecek kayıtların yalnızca kesin alt kümesini döndüren özel disk belleğini destekleyecek şekilde yapılandırılabilir. Ancak SqlDataSource denetimi, özel disk belleği uygulama özelliklerine sahip değildir.

SqlDataSource ile disk belleği ve sıralama ile ilgili başka bir incelik ortaya çıkar. Varsayılan olarak, SqlDataSource'tan döndürülen veriler GridView aracılığıyla sayfalandırılabilir veya sıralanabilir. Bunu göstermek için, Içinde GridView'un akıllı etiketindeki Querying.aspx Sayfalandırmayı Etkinleştir ve Sıralamayı Etkinleştir seçeneklerini işaretleyin ve bunun beklendiği gibi çalıştığını doğrulayın.

SqlDataSource veritabanı verilerini gevşek türe sahip bir DataSet'e aldığından sıralama ve sayfalama çalışır. Sorgu tarafından döndürülen toplam kayıt sayısı, disk belleği uygulama açısından önemli bir özellik olarak DataSet'ten doğrulanabilir. Ayrıca, DataSet sonuçları bir DataView aracılığıyla sıralanabilir. Bu özellikler, GridView sayfalandırılmış veya sıralanmış veriler istediğinde SqlDataSource tarafından otomatik olarak kullanılır.

SqlDataSource, özelliğini DataSet (varsayılan) DataReaderolarak değiştirerek DataSourceMode DataSet yerine DataReader döndürecek şekilde yapılandırılabilir. DataReader kullanmak, SqlDataSource sonuçlarını datareader bekleyen mevcut koda geçirirken tercih edilebilir. Ayrıca DataReader'lar DataSet'lerden çok daha basit nesneler olduğundan daha iyi performans sunar. Ancak bu değişikliği yaparsanız, SqlDataSource sorgu tarafından kaç kayıt döndürüleceğini doğrulayamaz ve DataReader döndürülen verileri sıralamak için herhangi bir teknik sunmadığından veri Web denetimi ne sıralayabilir ne de sayfalandırabilir.

4. Adım: Özel SQL Deyimi veya Saklı Yordam Kullanma

SqlDataSource denetimini yapılandırırken, veri döndürmek için kullanılan sorgu, iki yaklaşımdan birinde özel SQL deyimi veya saklı yordam olarak ya da var olan bir tablo veya görünümden sütunlar olarak belirtilebilir. 2. Adımda tablodan sütun seçme işlemini Products inceledik. Şimdi özel sql deyimini kullanmaya bakalım.

Sayfaya Querying.aspx başka bir GridView denetimi ekleyin ve akıllı etiketteki açılan listeden yeni bir veri kaynağı oluşturmayı seçin. Ardından, verilerin bir veritabanından çekileceğini ve bunun yeni bir SqlDataSource denetimi oluşturacağını belirtin. Denetimi ProductsWithCategoryInfoDataSourceolarak adlandırın.

ProductsWithCategoryInfoDataSource Adlı Yeni bir SqlDataSource Denetimi Oluşturma

Şekil 12: Adlı Yeni bir SqlDataSource Denetimi Oluşturma ProductsWithCategoryInfoDataSource

Sonraki ekran, veritabanını belirtmemizi ister. Şekil 7'de yaptığımız gibi, açılan listeden NORTHWINDConnectionString öğesini seçin ve İleri'ye tıklayın. Select Deyimini Yapılandır ekranında Özel SQL deyimi veya saklı yordam belirt radyo düğmesini seçin ve İleri'ye tıklayın. Bu, SELECT, UPDATE, INSERT ve DELETE etiketli sekmeler sunan Özel Deyimleri veya Saklı Yordamları Tanımla ekranını açar. Her sekmede metin kutusuna özel bir SQL deyimi girebilir veya açılan listeden bir saklı yordam seçebilirsiniz. Bu öğreticide özel bir SQL deyimi girme konusuna bakacağız; sonraki öğreticide saklı yordam kullanan bir örnek yer alır.

Özel SQL Deyimi Girin veya Saklı Yordam Seçin

Şekil 13: Özel SQL Deyimi Girme veya Saklı Yordam Seçme

Özel SQL deyimi metin kutusuna el ile girilebilir veya Sorgu Oluşturucusu düğmesine tıklanarak grafik olarak oluşturulabilir. Sorgu Oluşturucusu'ndan veya metin kutusundan aşağıdaki sorguyu kullanarak ve alanlarını tablodan ürün almak üzere kullanarak tablodan JOIN döndürebilirsiniz ProductIDCategoriesProductName:CategoryNameProducts

SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Categories
    INNER JOIN Products ON
        Categories.CategoryID = Products.CategoryID

Sorgu Oluşturucusu'nu Kullanarak Sorguyu Grafik Olarak Oluşturabilirsiniz

Şekil 14: Sorgu Oluşturucusu'nu Kullanarak Sorguyu Grafik Olarak Oluşturabilirsiniz

Sorguyu belirttikten sonra, Test Sorgusu ekranına gitmek için İleri'ye tıklayın. SqlDataSource sihirbazını tamamlamak için Son'a tıklayın.

Sihirbazı tamamladıktan sonra, GridView'a sorgudan döndürülen ve aşağıdaki bildirim temelli işaretlemeye neden olan , ProductNameve CategoryName sütunlarını görüntüleyen ProductIDüç BoundField eklenir:

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

GridView Her Ürünün Kimliğini, Adını ve İlişkili Kategori Adını Gösterir

Şekil 15: GridView Her Ürünün Kimliğini, Adını ve İlişkili Kategori Adını Gösterir (Tam boyutlu görüntüyü görüntülemek için tıklayın)

Özet

Bu öğreticide SqlDataSource denetimini kullanarak verileri sorgulamayı ve görüntülemeyi gördük. ObjectDataSource gibi, SqlDataSource da verilere erişmeye yönelik bildirim temelli bir yaklaşım sağlayan bir proxy işlevi görür. Özellikleri bağlanılacak veritabanını ve yürütülecek SQL SELECT sorgusunu belirtir; bunlar Özellikler penceresi veya DataSource Yapılandırma sihirbazı kullanılarak belirtilebilir.

SELECT Bu öğreticide incelediğimiz sorgu örnekleri, belirtilen sorgudaki tüm kayıtları döndürdü. Ancak SqlDataSource denetimi, değerleri program aracılığıyla atanan veya belirtilen kaynaktan otomatik olarak çekilen parametrelere sahip bir yan tümcesi içerebilir WHERE . Sonraki öğreticide parametreli sorguların nasıl oluşturulacağını ve kullanılacağını inceleyeceğiz!

Mutlu Programlama!

Daha Fazla Bilgi

Bu öğreticide ele alınan konular hakkında daha fazla bilgi için aşağıdaki kaynaklara bakın:

Yazar hakkında

Yedi ASP/ASP.NET kitabının yazarı ve 4GuysFromRolla.com kurucusu Scott Mitchell, 1998'den beri Microsoft Web teknolojileriyle çalışmaktadır. Scott bağımsız bir danışman, eğitmen ve yazar olarak çalışmaktadır. Son kitabı Sams Teach Yourself ASP.NET 24 Saat içinde 2.0. Adresine adresinden veya adresinden ulaşabileceğiniz http://ScottOnWriting.NETblogu aracılığıyla ulaşabilirsinizmitchell@4GuysFromRolla.com.

Özel Teşekkürler

Bu öğretici serisi birçok yararlı gözden geçiren tarafından gözden geçirildi. Bu öğreticinin baş gözden geçirenleri Susan Connery, Bernadette Leigh ve David Suru oldu. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, bana bir satır mitchell@4GuysFromRolla.combırakın.