SqlDataSource Denetimi ile Veri Sorgulama (C#)
tarafından Scott Mitchell
Ö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.
Ş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.
Ş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ı SqlDataSource
yeni 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
Ş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.
Şekil 4: Kullanıcı Denetimini ekleme SectionLevelTutorialListing.ascx
Default.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.sitemap
sonra, öğ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.
Ş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 ID
ProductsDataSource
ayarlayı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.
Ş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.MDF
App_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.
Ş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
, ProductName
ve 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.
Şekil 8: Tablodan Products
Veri Döndürme
Sihirbazı tablodan , ProductName
ve 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.
Ş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.config
bir 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
.
Ş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 ProductID
döndürdüğünden , ProductName
ve 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 ProductID
gösterildiği gibi GridView her ürünün , ProductName
ve UnitPrice
değerlerini listeler.
Şekil 11: GridView Her Ürünün ProductID
, ProductName
ve 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) DataReader
olarak 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 ProductsWithCategoryInfoDataSource
olarak adlandırın.
Ş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.
Ş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 ProductID
Categories
ProductName
:CategoryName
Products
SELECT Products.ProductID, Products.ProductName, Categories.CategoryName
FROM Categories
INNER JOIN Products ON
Categories.CategoryID = Products.CategoryID
Ş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 , ProductName
ve 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>
Ş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:
- SqlDataSource Denetimine Genel Bakış
- ASP.NET Hızlı Başlangıç Öğreticileri: SqlDataSource Denetimi
- Web.config
<connectionStrings>
Öğesi - Veritabanı Bağlantı Dizesi Başvurusu
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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin