Skip to main content

AccessTr.neT


Vb.net günü geçmiş ve geçmemiş verileri listele

Vb.net günü geçmiş ve geçmemiş verileri listele

#1
Formdaki combobox üzerinden vade tarihi geçmiş ve vade tarihi geçmemiş verileri listviewde nasıl listeleyebilirim.
.rar VB.NET-SORU.rar (Dosya Boyutu: 98,11 KB | İndirme Sayısı: 11)
Cevapla
#2
Öncelikle Listview yerine DataGridView kullanmanızı tavsiye ederim. Şu anki örnek üzerinden çözümü sunacağım ama tekrar diyorum ListView kullanmayın Img-grin

Öncelikle Listeleme kodlarınızı Load içine değil ayrı bir prosedür içerisine taşıyalım. Bu şekilde yapmaya alışın ki aynı kodu farklı noktalarda defalarca kullanabilirsiniz.


Private Sub Listele()

   Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
   baglanti.Open()

   Dim sqlCumle As String
   Dim takla As Date = DateTime.Today.ToShortDateString

   If (ComboBox100.SelectedIndex = 0) Then
     sqlCumle = "select * FROM [Kayitlar] WHERE [VADETARİHİ] < #" & takla.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) & "#"
   Else
     sqlCumle = "select * FROM [Kayitlar] WHERE [VADETARİHİ] >= #" & takla.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) & "#"
   End If


   Dim komut As New OleDbCommand(sqlCumle, baglanti)
   Dim oku As OleDb.OleDbDataReader
   oku = komut.ExecuteReader()
   ListView1.Items.Clear()
   While oku.Read()
     With ListView1.Items.Add(oku("TckimlikNo"))
       .SubItems.Add(oku("AdiSoyadi"))
       .SubItems.Add(oku("BabaAdi"))
       .SubItems.Add(oku("VADETARİHİ"))
     End With
   End While
   baglanti.Close()

 End Sub


Benim değişiklik yaptığım yerler :

Dim sqlCumle As String
   Dim takla As Date = DateTime.Today.ToShortDateString

   If (ComboBox100.SelectedIndex = 0) Then
     sqlCumle = "select * FROM [Kayitlar] WHERE [VADETARİHİ] < #" & takla.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) & "#"
   Else
     sqlCumle = "select * FROM [Kayitlar] WHERE [VADETARİHİ] >= #" & takla.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture) & "#"
   End If


   Dim komut As New OleDbCommand(sqlCumle, baglanti)

Listele prosedürünü çalıştırınca combobox içinde hangi index seçili ise ona göre Sql cümlemiz değişmiş olacak.

Load olayının kodları artık şu şekilde olmalı:


    ComboBox100.Items.Add("Günü geçmiş")
   ComboBox100.Items.Add("Günü geçmemiş")

   Listele()


Ayrıca combobox içindeki seçim değiştikçe ListView içindeki verilerin de değişmesi gerek. Bunun için combobox'ın SelectedIndexChanged olayına yine Listele() yazarak listedeki verilerimizi yenilemiş olacağız.

Kodlarınızı incelemedim yanlış veya doğru varmı diye. Ayrıca kendi yazdığım Sql cümlesinde < ve >= vb. işaretleri kontrol etmeden ekledim. Siz gerekli kontrolleri yaparsınız.

Bu arada veritabanı olarak Access kullanmamanızı tavsiye ederim. En kötü ihtimalle SqlCompact kullanın.
AccessTr.Net teknik konular içeren bir sitedir. Bu tip sitelerde en iyi şekilde yardım alabilmeniz için Site Kurallarını mutlaka okumanız ve buna göre hareket etmeniz lazım.
Cevapla
#3
Allah razı olsun,uzun süredir uğraşıyordum.Tavsiyelerinize uyacağım.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task