C# DateTimePicker Kullanarak DataGridView Üzerinde Veri Filtreleme – Ahmet Cansever
Cuma , 24 Mart 2017
Anasayfa » C# » C# DateTimePicker Kullanarak DataGridView Üzerinde Veri Filtreleme

C# DateTimePicker Kullanarak DataGridView Üzerinde Veri Filtreleme

Bu yazımızda C# ile DatagridView içine veritabanından veri çekerek, DatetimePicker kontrolleri kullanarak iki tarih arasındaki kayıtların filtrelenmesi ve DataGridview üzerinde görüntülenmesini sağlayan basit bir örnek gerçekleştireceğiz.

Örneğimizi Sql Server Veritabanı bağlantısı kullanarak “otobus” isimli veritabanındaki “Musteriler” isimli tablodaki verileri çekerek gerçekleştireceğiz. Form yüklendiğinde tüm verilerin DatagridView üzerinde görüntülenmesini sağlayacağız. Daha sonra Formumuza eklemiş olduğumuz iki adet DatetimePicker ile doğum tarihine göre başlangıç ve bitiş tarihi ayarlayarak bu iki tarih arasındaki verilerin DataView kullanarak filtrelenmesini ve DatagridView üzerinde görüntülenmesini sağlayacağız.

Daha önceki yazılarımızda C# SQL bağlantısı ile ilgili örnekler oluşturduğumuzu hatırlatarak örneğimize geçelim.

Form tasarımını aşağıdaki gibi oluşturalım.

datetimepicker_filtreleme_3

Formumuzda görüldüğü gibi 1 adet DatagridView, 2 adet DateTimePicker ve 1 adet Button bulunmakta.

Şimdi kodlarımıza geçelim. Öncelikle;

ekliyoruz. Daha sonra;

nesnelerimizi public olarak oluşturuyoruz.

Verilerimizin Form ilk açıldığında DatagridView üzerinde görüntülenmesini sağlamak için Form_Load olayına aşağıdaki kodları yazıyoruz.

datetimepicker_filtreleme_2

Son olarak Filtrele butonu için aşağıdaki kodları oluşturuyoruz.

Kodlarımızı tamamlamış olduk. Örneğimize ait C# kodlarının tamamlanmış hali aşağıdaki şekilde olacaktır.

Şimdi programımızı çalıştırarak aşağıdaki gibi DatetimePicker kontrollerinden 2 tarih ayarlayarak bu 2 tarih arasındaki verileri DatagridView üzerinde filtreleyelim.

datetimepicker_filtreleme_1

Görüleceği gibi başlangıç ve bitiş tarihine göre DatagridView üzerinde veri filtreleme işlemini gerçekleştirmiş olduk.

Hakkında Ahmet C

16 Yorumlar

  1. Merhaba bu filtrelemeyi çok fazla sayıda veri oldugunda aşırı bir yavaşlama oluyor hatta kilitlenme oluyor .kendi halimde barkod programi yazıyorum ve marketde kullaniyorum .günlük satışlar ve aylık satışlarda kullanıldığında sıkıntılı.kısaca büyük veri potansiyeli olan işlerde kullanmayin arkadaşlar.http://www.ahmetcansever.com/programlama/c-verilen-iki-tarih-arasindaki-kayitlari-datagridview-de-goruntuleme/ ahmet bey’in sql den sorgulamasi ile çektiği şekilde kullanmak daha hızlı ve sıkıntısız çalışıyor.ben niçin deniyorum diye sorarsanız datagridviewi daha iyi kavramaya ve programima farklı şeyler katmaya çalısıyorum.12 adet formum raporlama üstüne ve hepsinde sql sorgusu kullandim.farklı şeyler denedim ama sql sorgusu yapıp sonucu aktarmak en hızlı çözüm

  2. şeyhmus çelik

    mrb ben bu işte acemıyım gunlerce uğraşıp kendı ışıme uygun bir proğram yaptım yanlız ıkı tarıh arası filtreleme yapamadım yukardakı örneği kendıme uyarlayamaya çaliştım ama yapamadım sebebı ıse de hocamın ornegı sql ben ıse acsess verı tabanı kullandım bunu nasıl uyarlayabılırım acaba tşk ıyı akş

    • Bağlantınızı nasıl oluışturduğunuzu görmem gerekiyor. DataTable kullanarak yaptıysanız yukarıdaki şekilde rahatlıkla uygulanabilir. Çok acil değilse Facebook sayfamızdan projenizi sıkıştırıp yollarsanız incelemeye çalışırım.

    • yukardaki System.Data.SqlClient; yerine using System.Data.OleDb;

      —————————————————————————————————————
      SqlConnection baglanti; OleDbConnection baglanti; SqlDataAdapter da; yerine OleDbDataAdapter da;

      ————————————————————————————————————–
      baglanti = new SqlConnection(“server=.; Initial Catalog=otobus;Integrated Securit

      yerine

      baglanti = new OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0; Data Source=veritabani1.accdb”);
      ————————————————————————————————————–
      da = new SqlDataAdapter(“Select *From Musteriler”, baglanti);

      yerine

      da = new OleDbDataAdapter(“Select *From Musteriler”, baglanti);

      Musteriler yerine de accessde tablonun ismi ne yaptıysan onu yaz ve türkçe karakter kullanma
      ———————————————————————————————————–
      bu şekilde değiştirmen gerekiyor

  3. O zaman şu şekilde yapılabilir. Atıyorum A : 200,B : 320, C :50, D:40 olarak tutsun. Tümünün toplamı 610 1-610 arası rasgele sayı tutturup Sayı 0-200(A) arasındaysa A kişisi,200-520 arasındaysa B kişisi.. şeklinde yapılabilir. Rasgele sayı tuma ve if-else if yapısıyla çözülebilir. İlgilenip buraya atmaya çalışırım.

    • Yunus Emre OCAK

      Hocam öyle olmaz ya 320 olanın şansı daha çok olmalı orda 120 oluyo siz örnek proje yaparsanız bi gün bakarım yinede teşekkürler

      • Zaten daha cok olacak.

      • Merhaba. Projeyi indirip inceleyebilirsiniz.

        https://yadi.sk/d/gtUPnEYBwneLz

        • Yunus Emre OCAK

          Çok teşekkürler tam istediğim gibi olmuş ama mantıkta if ilerledikce a + b + c şeklinde büyümesini anlamadım açıklayabilir misiniz?

          • A=5 B=10 C=15 D=20 olsun.

            Toplam: 50 eder. Rasgele sayımız 1-50 arası olacak.
            Eğer 1 den 5 e kadar tutarsa A (0-a arası) 50 de 5 ihtimal
            5-15 arası tutarsa B (a – (a+b) arası) 50 de 10 ihtimal
            15-30 arası tutarsa C ((a+b) -(a+b+c) arası) 50 de 15 ihtimal
            30-50 arası tutarsa D olacak bu değerleri de değişkenden almamız gerekiyor. 50 de 20 ihtimal.

          • Yunus Emre OCAK

            Çok teşekkürler aynı şekilde projeme devam ediyorum bu arada size soru sorabilceğimiz bi platform yapabilir misiniz yada epostanıza soru yazmak gibi c# hakkında

          • Facebook sayfamizi beğenerek sayfamizda bulunan mesaj butonunu kullanabilirsiniz.

  4. Kişi sayılarının belli bir sınırı var mı? Yani 1′ den kaça kadar olacak sayıları. Şu an aklıma gelen bir dizi ya da list oluşturup yukarıdaki varsayıma göre içine 5 tane A,4 tane B … şeklinde ekleme (tabi bu kısmıda rasgele olacak) yapıp butona basıldığında dizinin eleman sayısı kadar rasgele bir sayı tutularak o sayının karşılığı olan dizi elemanı hangisiyse onun gösterilmesi şeklinde. Sonuçta kişilerin gösterilme ihtimali dediğiniz gibi olacaktır.

  5. Yunus Emre OCAK

    Hocam bu konuyla ilgisiz bi sorum var c# hakkında cevaplayabilirmisiniz?:

    örneğin 4 kişi düşünün her kişinin bi sayısı var örneğin A=5 B=4 C=3 D=2 gibi her program başlatıldığında bu sayılar rastgele olarak değişiyor buraya kadar yaptım fakat istediğim şey butona bastığımda bunlardan birini seçsin ama hangisinin sayısı daha büyükse onun olasılığı daha büyük olsun mesela üstteki örnekte toplam 14, A ise 5 o zaman A’nın çıkma olasılığı 5/14 bunun için neyi araştırmalıyım? derslerinizi takip ediyorum ama bunun için bi dersinizi bulamadım

Yorum Yap

Wordpress Tema indir