Anasayfa / Yazılım / ASP.NET / GridView Kontrolü ile Veri Listelemek

GridView Kontrolü ile Veri Listelemek

Bir önceki yazımda GridView kontrolüne teorik olarak değinmiştim. Bu yazımda şimdi GridView kontrolü ile veri tabanından veri çekip bir ASP.NET web formunda listelemeyi göreceğiz. Bunun için ben hazır database örneklerinden Northwnd veri tabanını kullanıyorum. Site içinde arama yaparak ilgili database örneğini bulabilir ve veritabanınıza yükleyebilirsiniz ya da siz kendiniz bir veri tabanı oluşturabilirsiniz.

Öncelikle yeni bir boş WEB site projesi açıoyorum ve bir adet WEB formu ekliyorum. Ben adını Default.aspx olarak bıraktım. Database bağlantımı web.config dosyasından alacağım. Bunu alışkanlık haline getirmemiz iyi olur. ConfigurationManager sınıfını ile daha sonra bu bağlantı satırımızı buradan çekeceğiz.

web.config dosyası kod içeriğim :






    
        
    
  
    
  

Bağlantımı satırımı ConnectionString içinde tanımladım. Bu bağlantımı kullanabilmek için unutmamam gereken en önemli konu C# code behind tarafında ilgili kütüphane satırını eklemem olacak. Bu da using System.Configuration (daha önce anlatmıştım) Bunu zaten aşağıdaki kod bloğunda daha sonra göreceksiniz.

Şimdi WEB formumuza geri dönelim. Biz tasarım yapmayacağız tabii, tasarımsız bi sayfaya veri çekeceğiz, o yüzden tasarıma vs bakmayın şimdi 🙂

Sayfama sadece bir adet GridView kontrolü ekliyorum. Bunu ToolBox’dan sürükle bırakla ekleyebilirsiniz. Ya da direkt olarak kod bölümünden kod girerekde ekleyebilirsiniz. İşlem sonucunda web formumun kodları şu şekilde oluyor.

Default.aspx sayfam :

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>





    


    

Veri Listesi

Kontrolümün adını değiştirmedim. Tek kontrol kullanacağım için aynı bıraktım, siz değiştirebilirsiniz. Bu kontrolü formuma sürüklediğimde elde ettiğim görüntü şu an için şu şekilde,

Şimdi kod tarafını yazıp verilerimizi çekelim, bunun için web formumun page_load eventinde şu kodları yazıyorum. Açıklamalarım kodların içinde..

Default.aspx.cs dosyası :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //Sayfam daha önce yüklenmedi ise veriBagla metodumu çalıştırıyorum
        if (!IsPostBack)
        {
            veriBagla();
        }
    }
    //VeriBagla metodum
    private void veriBagla()
    {
        //SQL bağlantımı, komutumu ve datareader nesnemi tanımlıyorum.
        SqlConnection conn;
        SqlCommand comm;
        SqlDataReader reader;
        //Bağlantı satırımı ConfigurationManager sınıfı ile web config dosyasından atamış olduğum isimle çekiyorum.
        string connectionString = ConfigurationManager.ConnectionStrings["Baglantim"].ConnectionString;
        conn = new SqlConnection(connectionString);
        //SQL queryimi yazıyorum. Employees tablosundan çekmek istediğim verileri SELECT ile çekiyorum.
        comm = new SqlCommand("SELECT EmployeeID,LastName,FirstName,City,HomePhone FROM Employees", conn);
        try
        {
            //Bağlantımı açıyorum, dataReader nesnemi çalıştırıyorum ve GridView kontrolüme DataBind işlemi yapıyorum.
            conn.Open();
            reader = comm.ExecuteReader();
            GridView1.DataSource = reader;
            GridView1.DataBind();
            //Reader nesnemi kapatıyorum
            reader.Close();
        }
            //hata olursa vereceğim mesaj
        catch
        {
            Response.Write("Bir hata oluştu");
        }
            //Bağlantımı kapatıyorum
        finally
        {
            conn.Close();
        }
    }
}

Örneğimde Northwnd veritabanında Employees tablosundan EmployeeID, LastName, FirstName, City, HomePhone veri alanlarını çektim bunun sonucunda ekranda şu şekilde veriler listelenir.

Peki şu ana kadar Repeater kontrolünden farklı olarak ne yaptık. Aslında hemen hemen her şey aynı gibi, elde ettiğimiz sonuçta aynı gibi. Ama görüldüğü üzere GridView ile veri çektiğimizde tıpkı bir SQL tablosu gibi veriler karşımızda listelenmekte.. İlk farklı nokta bu kısım. Ve daha önemli kısımları ise bir sonraki yazılarımda paylaşacağım. Bu yazımda sadece verileri listelemeyi görelim ve Gridview kontrolünün otomatik olarak nasıl bir HTML tablo oluşturduğunu görelim istedim.

Sayfamız yüklendiğinde browserimizde dağ tıklayıp kaynak kodu görüntüle dediğimizde zaten HTML kodda bir table format olduğunu görebileceksiniz..

...
...

Veri Listesi

EmployeeIDLastNameFirstNameCityHomePhone
1DavolioNancySeattle(206) 555-9857
2FullerAndrewTacoma(206) 555-9482
3LeverlingJanetKirkland(206) 555-3412
4PeacockMargaretRedmond(206) 555-8122
5BuchananStevenLondon(71) 555-4848
6SuyamaMichaelLondon(71) 555-7773
7KingRobertLondon(71) 555-5598
8CallahanLauraSeattle(206) 555-1189
9DodsworthAnneLondon(71) 555-4444
... ...

Şu anda görüntülenen tablo tabi çok sade. Bunu daha anlaşılabilir daha görsel hale getirebiliriz. Veya istediğimiz gibi sıralama yaptırabiliriz, ya da sayfalama yaptırabiliriz vs vs. Bunların hepsini adım adım daha sonraki yazılarda bulabileceksiniz. Şimdilik bu kadar..

Bir yorum

  1. Selam, Açıklamalı güzel olmuş fakat nedense sürekli “Response.Write(“Bir hata oluştu”)” devreye giriyor
    Mysql database kullanıyorum bu kodlar Mysql için uyun değil mi?…

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir