ASP.NET Ve LinQ Kullanımı
Bu yazı 2 yıl 1 ay önce yayınlanmış olduğundan güncelliğini yitirmiş veya içeriğindeki bilgilerin geçerliliği kaybolmuş olabilir. Herhangi bir yanlış anlaşılmadan bu site sorumlu değildir. LinQ, kod tarafında sorgulama yapmamızı sağlayan ve .Net Framework 3.5 ile ortaya çıkan bir tekniktir. Diğer bir deyişle, SQL kullanmadan kod içerisinde sorgulama yapabilmemizi sağlar. Sql komutu veritabanında çalıştırılırken, Linq yazdığımız programın içerisinde çalışmaktadır. Hız ve kullanışlılık bakımından oldukça iyi bir teknolojidir. Bu makalede, ASP.NET ile basit bir şekilde Linq kullanımına değineceğiz. Gelen olumsuz tepkiler yüzünden, bu sefer veritabanı kullanmayacağım; verileri koleksiyona gireceğim. Böylece projeyi indirip veritabanını incelemek yerine, koddan bakabileceksiniz
Öncelikle Visual Studio 2008 ile yeni bir web projesi açalım. Ve Default.aspx dosyasını, aşağıdaki kodlarla biçimlendirelim. (Not: Bundan önceki projelerimde olduğu gibi, program ve açıklamaları Ingilizcedir. Yanlış anlaşılma olmasın.)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:GridView ID="GridView1" runat="server" BackColor="LightGoldenrodYellow" BorderColor="Tan" BorderWidth="1px" CellPadding="2" ForeColor="Black" GridLines="None"> <FooterStyle BackColor="Tan" /> <PagerStyle BackColor="PaleGoldenrod" ForeColor="DarkSlateBlue" HorizontalAlign="Center" /> <SelectedRowStyle BackColor="DarkSlateBlue" ForeColor="GhostWhite" /> <HeaderStyle BackColor="Tan" Font-Bold="True" /> <AlternatingRowStyle BackColor="PaleGoldenrod" /> </asp:GridView> <br /> Listelenen Kayıt: <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br /> Toplam Kayıt: <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label> </div> </form> </body> </html>
Ardından kod tarafına geçip, aşağıdaki gibi kodlamaya başlayalım:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
// Data Collection
public class Library
{ // Collection Properties
public string bName { get; set; }
public string bAuthor { get; set; }
public int bPage { get; set; }
}
protected void Page_Load(object sender, EventArgs e)
{
// Create new list and enter some data to lib1
List<Library> lib1 = new List<Library>
{
new Library {bName="Kayıp Sembol",bAuthor="Dan Brown",bPage=528},
new Library {bName="Cumhuriyet Türk Mucizesi",bAuthor="Turgut Özakman",bPage=440},
new Library {bName="3D Oyun Programlamaya Giriş",bAuthor="Tom Muller",bPage=396},
new Library {bName="A'dan Z'ye Ajax, DOM, XML, XSLT, JSON",bAuthor="Rıza Çelik",bPage=622},
new Library {bName="A'dan Z'ye XHTML, CSS2, CSS3",bAuthor="Rıza Çelik",bPage=450},
new Library {bName="A'dan Z'ye PHP",bAuthor="Rıza Çelik",bPage=696},
};
// Gridview1 Data source -> Query(LinQ)
GridView1.DataSource = from Library in lib1
where Library.bPage > 500
orderby Library.bAuthor
select Library;
// Bind Data
GridView1.DataBind();
// Gridview1 Rows Count Number
Label1.Text = GridView1.Rows.Count.ToString();
// All Entry Number
Label2.Text = Convert.ToString((from Library in lib1 select Library).Count());
}
}
Veritabanı yerine, koleksiyon kullanacağım demiştim; bu yüzden ilk başta Library adında bir veri koleksiyonu oluşturuyoruz. Programın yüklenme anında(Load) ise, verileri tanımlamak üzere oluşturmuş olduğumuz koleksiyona ait olduklarını belirtip, verileri girmeye başlıyoruz. Gridview1.Datasource satırında ise, işte o sihirli(!) LinQ komutlarını kullanarak, verileri çekiyoruz. Biraz Sql’in tersten yazılışını andırıyor değil mi
Önce nereden seçileceği, sonra da nelerin seçileceği ve parametreler.. Örneğimizde, sayfa numarası 500′den büyük kitaplar listelenmektedir. Label2.Text satırında ise, bir Linq daha yapılmış, ve bu sefer kaç kayıt olduğu bulunmuştur.
Linq’nun genel olarak kullanımı böyle. Bu yazış düzenine alıştığınız zaman, hemen hemen herşeyi yapabilirsiniz. Bazen Google amcaya sormakta da fayda var
Yapılan örneği, http://download.mesuterdemir.com/asp.net/Asp2Linq.zip adresinden indirebilir veya aşağıdaki ekran görüntüsünü inceleyebilirsiniz.
Benzer yazılar:

SDU - Bilgisayar Programcılığı mezunuyum. Sıkı bir Linuxçu ve Özgür Yazılım felsefesini benimsemiş biriyim.
Mesut

9 Oca, 2010
101 Linq örnekleri bağlantısı da işinize yarayabilir