14 Mayıs 2013 Salı

Veritabanı - 8... Order By ile İstenilen Alanları Listeleme...


Order By komutu sql üzerinde listeleme yapmak için kullanılan bir komuttur... Verilen alan ismine göre listeleme yapar ve verileri sıralı bir halde ekranda gösterir... Aşağıdaki program örneğinde bir datagridview de yapılan seçime göre listeleme işlemleri yapılmaktadır... 

Programın tasarımı aşağıdaki gibidir...

Program ilk açıldığında hemen verileri datagridview de göstermektedir... 

Bundan sonra yapılan seçimlere göre listeleme işlemlerini gerçekleştirmektedir... Programın kod satırları aşağıdaki gibidir... 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.OleDb;

namespace Listeleme_1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        // Veritabanı bağlantılarını yapıyoruz... 
        OleDbConnection baglanti = new OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=okul.mdb");
        OleDbCommand komut = new OleDbCommand();
        
        private void Form1_Load(object sender, EventArgs e)
        {
            // Formun girişinde bütün bilgileri datagridview de gösteriyoruz... 
            baglanti.Open(); 
            komut.CommandText = "Select * From ogrenci";
            komut.Connection = baglanti;

            OleDbDataAdapter da =new OleDbDataAdapter(komut);
            DataSet ds = new DataSet();
            da.Fill(ds, "diz");
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "diz";

            baglanti.Close();
        }

        private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            // İsme göre listeleme yapılacaksa veritaban isimli metodumuza alan adı olarak Isim gönderiyoruz... 
            // Buradaki Isim access tablomuzdaki alan adıdır... 
            string a = "Isim";
            veritaban(a);
        }

        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            // Numaraya göre listeleme yapılacaksa veritaban isimli metodumuza alan adı olarak No gönderiyoruz... 
            string a = "No";
            veritaban(a);
        }

        private void radioButton3_CheckedChanged(object sender, EventArgs e)
        {
            // Yaşa göre listeleme yapılacaksa veritaban isimli metodumuza alan adı olarak Yas gönderiyoruz... 
            string a = "Yas";
            veritaban(a);
        }

        void veritaban(string kontrol)
        {
            baglanti.Open(); 
            //[] içerisinde alan adlarını yazarak Türkçe karakter veya özel karakter sorununu da ortadan kaldırmış olduk...
            komut.CommandText = "Select * From ogrenci ORDER BY[" + kontrol + "]";
            komut.Connection = baglanti;

            OleDbDataAdapter da = new OleDbDataAdapter(komut);
            DataSet ds = new DataSet();
            da.Fill(ds, "diz");
            dataGridView1.DataSource = ds;
            dataGridView1.DataMember = "diz";
            baglanti.Close();
        }
    }
}