SqlDataSource Denetimi ile Veri Sorgulama (VB)

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şiminin bu kadar katı bir şekilde ayrılmasını 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) ilk öğreticide (Veri Erişim Katmanı Oluşturma) ve ikincisinde İş Mantığı Katmanı (İş Mantığı Katmanı Oluşturma) oluşturulmuştu. ObjectDataSource ile Verileri Görüntüleme öğreticisinden başlayarak ASP.NET 2.0'ın yeni ObjectDataSource denetimini kullanarak sunu katmanından mimariyle bildirim temelli arabirim oluşturma işleminin nasıl yapıldığını gördük.

Şimdiye kadar tüm öğreticiler mimariyi verilerle çalışmak için kullansa da, mimariyi atlayarak doğrudan bir ASP.NET sayfasından veritabanı verilerine 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ı mimari tasarlamak, uygulamak ve kullanmak, 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 ve tek seferlik uygulamalar oluştururken sağlam bir mimari geliştirmek gereksiz olabilir.

ASP.NET 2.0 beş yerleşik veri kaynağı denetimi sağlar : SqlDataSource, AccessDataSource, ObjectDataSource, XmlDataSource ve SiteMapDataSource. SqlDataSource; Microsoft SQL Server, Microsoft Access, Oracle, MySQL ve diğerleri dahil olmak üzere doğrudan ilişkisel bir veritabanından verilere erişmek ve bunları değiştirmek için kullanılabilir. Bu öğreticide ve sonraki üç öğreticide SqlDataSource denetimiyle çalışma, veritabanı verilerini sorgulama ve filtrelemenin yanı sıra sqldatasource kullanarak veri ekleme, güncelleştirme ve silme konularını 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 verilere proxy'lerdir. 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 ö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ını 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 işlevi görür

Not

Bu öğreticide veritabanından veri almaya odaklanacağız. SqlDataSource Denetimi ile Veri Ekleme, Güncelleştirme ve Silme öğreticisinde, SqlDataSource'un 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, ASP.NET 2.0'da yeni olan birçok geliştiricinin AccessDataSource denetiminin yalnızca Microsoft SQL Server ile çalışacak şekilde tasarlanmış SqlDataSource denetimiyle Microsoft Access ile çalışacak şekilde tasarlandığından şüphelenmesine neden olur. AccessDataSource özellikle Microsoft Access ile çalışacak şekilde tasarlanmış olsa da, SqlDataSource denetimi .NET aracılığıyla 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ı Oluşturma

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

  • 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 kendi bölümündeki öğreticiler listelenecektir. 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 Ekle'nin ardından 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'ı 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 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 verileri 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. Klasördeki veritabanı için NORTHWIND.MDF projemizin Web.config dosyasına zaten bir bağlantı dizesi eklediğimizden, açılan listede bu bağlantı dizesi NORTHWINDConnectionStringbaşvuru yer App_Data alır. 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 deyimini veya saklı yordamı belirtme ve Tablodaki sütunları belirtme veya radyo düğmelerini görüntüleme aracılığıyla bu seçim arasında geçiş yapabilirsiniz.

Not

Bu ilk örnek için Tablo veya görünümden sütun belirt seçeneğini kullanalım. Bu öğreticinin ilerleyen bölümlerinde sihirbaza geri 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çiliyken 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, tablosundan 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ı yalnızca denetim özelliklerine ve SelectCommand ö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>

özelliği veritabanına ConnectionString bağlanma hakkında bilgi sağlar. Bu özellik tam, sabit kodlanmış bir bağlantı dizesi değeri atanabilir veya içindeki Web.configbir bağlantı dizesi işaret edebilir. Web.config bir bağlantı dizesi değerine 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'u 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'ını 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ğı denetimi s Select() yöntemini çağırır. ObjectDataSource denetimini kullanırken sınıfın ProductsBLLGetProducts() yöntemi olarak adlandırılıyordu. AncakSelect(), SqlDataSource ile yöntemi belirtilen veritabanına bir bağlantı kurar ve (SELECT [ProductID], [ProductName], [UnitPrice] FROM [Products]bu örnekte) iletir SelectCommand . SqlDataSource, gridview'un listelediği sonuçları döndürür ve döndürülen her veritabanı kaydı için GridView'da bir satır oluşturur.

Built-In Veri Web Denetimi Özellikleri ve SqlDataSource Denetimi

Genel olarak, veri Web'ine özgü özellikler sayfalama, sıralama, düzenleme, silme, ekleme gibi işlemleri denetler ve 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, belirli 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 Veride Verimli Sayfalama öğreticisinde, varsayılan olarak, Web denetimleri için 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. Yeterince büyük sonuç kümelerini sayfalama sırasında bu model 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ğini uygulamak için temel bir unsur olan DataSet'ten doğrulanabilir. Ayrıca, DataSet sonuçları bir DataView aracılığıyla sıralanabilir. GridView sayfalandırılmış veya sıralanmış veriler istediğinde bu özellikler 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. SqlDataSource sonuçlarının DataReader bekleyen mevcut koda geçirilmesi durumlarında DataReader kullanılması 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ğrulayamayacağından ve DataReader döndürülen verileri sıralamak için herhangi bir teknik sunamadığı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ım'da tablodan sütun seçmeyi 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 yeni bir SqlDataSource denetimi oluşturacak bir veritabanından çekileceğini 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 ekranda veritabanını belirtmemiz istenecek. Ş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 grafiksel olarak oluşturulabilir. Sorgu Oluşturucusu'ndan veya metin kutusundan aşağıdaki sorguyu kullanarak tablodaki ve ProductName alanlarını döndürerek ProductID ürünün CategoryName tablosundan CategoriesJOIN alınmasını Products sağlayın:

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

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

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

Sorguyu belirttikten sonra, Test Sorgusu ekranına geçmek 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şmek için bildirim temelli bir yaklaşım sağlayan bir ara sunucu 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 WHERE yan tümce içerebilir. Sonraki öğreticide parametreli sorgular oluşturmayı ve kullanmayı 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 Hours 2.0'dır. 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'dur. Yaklaşan MSDN makalelerimi gözden geçirmek istiyor musunuz? Öyleyse, bana adresinden bir satır mitchell@4GuysFromRolla.combırakın.