C# MSSQL tarih arası veri çekme

O zaman mesela her gün için kayıt listelenecek, dbden çekilen veri ile kıyaslama yapılacak, dbden o gün için kayıt varsa o yazdırılacak, dbde o gün için kayıt yoksa boş yazdırılacak, doğru mu?

gün1 -> db kayıt var ->db kaydının içini yazdır
gün2 -> db kayıt eşleşmedi ->boş satır at
gün3 -> db kayıt var ->db kaydının içini yazdır
 

Evet, mesela resimdeki gibi, kişi izindeyse, kart basmadıysa ya da hafta sonu ise bu şekilde listelenebilmesini istiyorum. 2 tane dateTimePicker arasındaki veriyi listbox a aşağıdaki kodla ekliyorum.

C#:
  DateTime baslangictarihi = Convert.ToDateTime(dateTimePicker1.Text);
            DateTime bitistarihi = Convert.ToDateTime(dateTimePicker2.Text);
            for (; baslangictarihi < bitistarihi; baslangictarihi = baslangictarihi.AddDays(1))
            {
                string tarihA1 = baslangictarihi.Date.ToString("dd/MM/yyyy");
                listBox4.Items.Add(tarihA1 + "\n");
            }

fakat gerisi yok maalesef

yani benim önce tarihi listelemem, sonra ismi bulmam, sonra tarih ve isimin karşısına veri varsa yazdırıp datasete işlemem gerekiyor sanırım ama yapamadım.
 
C# a hakim değilim direkt kod ile anlatamayacağım ama şöyle bir çözüm deneyebilirsiniz gibime geliyor;

-istenen tarih aralığı için dbden veriyi çektiniz
-.fill yerine satır satır yazdırmak gerekiyor
-istenen tarih aralığı ne ise bunun için bir for döngüsü kullanacaksınız (14 Mart, 16 Mart aralığı için ise 3 kere çalışacak bir döngü)
-bu for için date bilgisini istediğiniz formata dönüştüreceksiniz (dd.MM.yyyy diyelim)
-elinizde 3 tane gün var ama dbden sadece 2 row geldi (15 Mart için veri yok)
-for içinde hangi günde iseniz dbden gelen rowlar arasında bu tarihi arayacaksınız
---formatlanmış tarih: "14.03.2023", dbden gelen rowların tarih kolonu buna eşit olan bir kayıt var mı?->var: rowu ekrana bastır
---formatlanmış tarih: "15.03.2023", dbden gelen rowların tarih kolonu buna eşit olan bir kayıt var mı?->YOK: ekrana tarihi, kişi adını bastıracaksınız, diğer kolonlar boş
---formatlanmış tarih: "16.03.2023", dbden gelen rowların tarih kolonu buna eşit olan bir kayıt var mı?->var: rowu ekrana bastır

* "dbden gelen rowların tarih kolonu buna eşit olan bir kayıt var mı?" fonksiyonu için c#ta en uygun nasıl yapılır bilmiyorum, javadaki stream api benzeri bir şey kesin vardır, c# bilen arkadaşlar fikir verebilir, yoksa db rowların her birini for ile tek tek gezip tarih kolonu eşit mi diye bakmak kötü bir yaklaşım ama çalışacaktır.

Bu şekilde biraz araştırarak bir çözüm yolu bulabilirsiniz diye anladım, bu basit senaryo için c# bilen arkadaşlar da yardımcı olabilirler.
 
Veritabanın da Tarih kısmının türü nedir nvarchar mı?

DataGridView e bilgileri eklediğiniz butonun kod kısmının görüntüsü ekleyebilir misiniz. (Personel Sorgula, Seçili Personel Sorgula hangisinde ise) (sql sorgu engeline de takılmazsınız =) )
 
datalar.Tables[0]; sadece burada mı kullanıyorsunuz.
 
Burada sadece dataGridView e sonuçları yazdırmak için kullanıyorsunuz değil mi, Bu kısımda dataset değilde datatable kullansanız sorun olmaz sanırım
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…