|
ObjectDataSource Kontrolü ile Veri Gösterme
|
|
Bu makalede ObjectDataSource kontrolünü kullanarak veritabanından nasıl kolayca veri çekebileceğimizi göreceğiz. Ek olarak ASP.NET 2.0 da DataGrid kontrolünün yerine gelen GridView kontrolüne bir göz atacağız.
|
|
Tayfun AKCAY,
05.03.2006 00:00:00
(Bu makale 4687 kez okundu.)
|
|
|
Untitled Page
ObjectDataSource
Kontrolü ile Veri Gösterme
Bu makalede ObjectDataSource kontrolünü
kullanarak veritabanından nasıl kolayca veri çekebileceğimizi göreceğiz. Ek olarak
ASP.NET 2.0 da DataGrid kontrolünün
yerine gelen GridView kontrolüne bir
göz atacağız.
Ürün veritabanı tablosunun içeriğini
gösteren bir web sayfası yaratmanız gerektiğini hayal edin. Ek olarak, bu verileri
getiren bir method içeren bir de business bileşeninizin olduğunu farzedin.
Örneğin, Liste 1 deki bileşen, ürün
veritabanı tablosunun içeriğine karşılık gelen ve bir DataReader döndüren; GetProducts
isimli bir method içerir. C# ve Visual Basic.NET örneklerini aşağıda verdim. Eğer
SQL Server 2005 kullanıyorsanız; Nortwind yerine AdventureWorks ve Products tablosu
yerine de Production.Products tablosunu kullanın.
Liste 1. ProductInfo.cs (C#)
using
System;
using
System.Data;
using
System.Data.SqlClient;
public
class ProductInfo
{
const string conString
= "Server=localhost;Trusted_Connection=true;Database=AdventureWorks;";
public static
SqlDataReader GetProducts()
{
SqlConnection con = new
SqlConnection(conString);
string selectString = "SELECT * FROM Production.Product";
SqlCommand cmd = new
SqlCommand(selectString, con);
con.Open();
SqlDataReader dtr =
cmd.ExecuteReader(CommandBehavior.CloseConnection);
return dtr;
}
}
Liste 1. ProductInfo.vb (Visual
Basic .NET)
Imports
System.Data
Imports
System.Data.SqlClient
Public
Class ProductInfo
Const
conString As String
= _
"Server=localhost;Trusted_Connection=true;Database=Northwind"
Public
Function GetProducts() As
SqlDataReader
Dim con As New
SqlConnection(conString)
Dim selectString As
String = "SELECT * FROM Products"
Dim cmd As New
SqlCommand(selectString,
con)
con.Open()
Dim dtr As SqlDataReader = _
cmd.ExecuteReader(CommandBehavior.CloseConnection)
Return dtr
End
Function
End
Class
Eğer Liste 1 adı altında belirtilen sınıf dosyanızı, uygulamanızın App_Code klasörü
içine eklerseniz; daha sonra sınıf dosyanız otomatik olarak ASP.NET Framework ü
tarafından derlenecektir. Bir başka değişle, ne zaman App_Code klasörü içine sınıfınızı
eklerseniz, hemen ASP.NET sayflarınızda bu sınıfı kullanmaya başlayabilirsiniz.
GetProducts methodu yoluyla döndürülen veritabanı
kayıtlarını göstermek için GridView
(Bilinen DataGrid kontrolünün ASP.NET
e özgü değiştirilmiş halidir) kontrolünü kullanacağız. Liste 2 içinde bulunan ASP.NET
sayfası bir GridView ve buna bağlı bir
ObjectDataSource kontrolü içerir.
Liste 2. ShowProducts.aspx
<html>
<head>
<title>Ürünleri
Göster</title>
</head>
<body>
<form id="form1"
runat="server">
<asp:GridView
ID="GridView1"
DataSourceID="ObjectDataSource1"
Runat="Server" />
<asp:ObjectDataSource
ID="ObjectDataSource1"
TypeName="ProductInfo"
SelectMethod="GetProducts"
Runat="Server" />
</form>
</body>
</html>
Liste 2 de tanımlanan ObjectDataSource
kontrolü iki önemli özellik içerir. TypeName
özelliği sınıfın adını gösterir ve SelectMethod özelliği veri seçerken, sınıf
içinde çağırdığımız methodun ismini içerir.
Liste 2 de ObjectDataSource kontrolü ProductInfo
sınıfı içinden GetProducts methodunu
çağırıyor. Ve GridView kontrolü ObjectDataSource kontrolüne GridView
kontrolünün DataSourceID özelliği ile bağlı olduğu için; GridView
kontrolü, ürün listesini ekranda gösterir.
ObjectDataSource kontrolünü veri çekilebilen herhangi
bir ASP.NET sayfasında kullanabilirsiniz. Bunlara GridView, DropDownList,
TreeView ve Repeater kontrolleri
örnek olarak verilebilir. ObjectDataSource kontrolü size bu standart kontrollerin
herhangi birine veri bindirmenize olanak sağlar.
|