Mesut.Erdemir: Bir yazılımcının günlüğü..

ASP.NET Ve LinQ Kullanımı

closeBu yazı 2 ay 4 gün ö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 />
&nbsp;&nbsp;&nbsp; Listelenen Kayıt:
 <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 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.

VN:F [1.8.0_1031]
Rating: 8.0/10 (1 vote cast)
ASP.NET Ve LinQ Kullanımı8.0101

Benzer yazılar:

  1. Gelişmiş Repeater İşlemleri

Buraya yapılan yorumları RSS 2.0 beslemesinden takip edebilirsiniz.