C# MSSQL tarih arası veri çekme

FrhtACAR

Femtopat
Katılım
15 Mart 2023
Mesajlar
12
Daha fazla  
Cinsiyet
Erkek
Öncelikle merhaba, ilk konumu açmış olayım.

C# ve MSSQL kullanarak bir giriş çıkış sistemi oluşturmaya çalışıyorum. Kartlı geçiş sisteminden gelen veriye göre sadece kartın basıldığı güne ait kayıtlar oluşuyor. Bu sebepten DataGridView de aşağıdaki şekilde bir görünüm çıkıyor.

Örneğin;

Ferhat acar / 14.03.2023 / 08:00 17:00

Ferhat acar / 16.03.2023 / 08:00 17:00

Ben sorgulama yaptığımda ferhat acar / 16.03.2023 / şeklinde bir satırın daha oluşmasını istiyorum. Bunun için ne yapmam gerekiyor?
 
İlgili verilerin hepsini döngü ile çekebilirsiniz. Bu yüzden önce etkilenen satır sayısını almanız lazım. Ne kadar satır etkileniyorsa döngü o kadar çalışmalı. Kodlarınızı atarsanız yardımcı olabilirim.
 
Merhaba SQL sorgusunu eklediğimde konuyu cevap veremiyorum. Çok teşekkür ederim.

C#:
datalar.Reset();
           AraSecilen = "";


            var lst = listBox3.SelectedItems.Cast<DataRowView>();
            foreach (var item in lst)
            {
                AraSecilen = item.Row[0].ToString();

            }
         

            Baglanti Baglan = new Baglanti();
            Baglan.Connection_Today();



           SqlDataAdapter PersonelAra = new SqlDataAdapter("SQL SORGUSU EKLEDİĞİMDE HATA VERİYOR", Baglanti.conn);

            PersonelAra.Fill(datalar);
            dataGridView1.DataSource = datalar.Tables[0];
            dataGridView1.Columns[0].HeaderText = "ID";
            dataGridView1.Columns[1].HeaderText = "Bölümü";
            dataGridView1.Columns[2].HeaderText = "Adı Soyadı";
            dataGridView1.Columns[3].HeaderText = "Tarih";
            dataGridView1.Columns[4].HeaderText = "Giriş";
            dataGridView1.Columns[5].HeaderText = "Çıkış";
            Baglanti.conn.Close();
 
Evet, SQL kodları site güveniği yüzünden hata verebiliyor.

Gördüğüm kadarıyla verileri veri tabanı üzerinden çekiyorsunuz.

Programın çalışır halini ekran görüntüsü atar mısınız?
 
1678869612670.png


Merhaba, insert işleminden ziyade, veritabanında işlenmemiş tarihleride listelemek istiyorum. örneğin ekran görüntüsünde yer alan 4 ve 5 ine ait kayıtlar veritabanında yok. Fakat ben data grid view üzerine verileri çektiğimde ilgili tarihlerin ve ismin çıkmasını, saat kısmının boş görünmesini istiyorum. Buna hafta sonları da dahil. sonrasında bunları rapor olarak alarak mesai çizelgesi olarak kullanacağız.
 
O zaman tüm kayıtları çekmeniz lazım. Belli bir kurala göre çekiyorsunuz anladığım kadarıyla.

O yüzden şu şekilde yazmanız yeterli.

SQL:
SELECT * FROM tablo_ismi;
 
Kartlı geçiş sisteminde kartın basılmadığı gün için veritabınında bir hareket oluşmuyor. yani o tarihe veri eklemiyor. Bu yüzden veritabanından koşul eklemesem dahi veri gelmeyecek. bunu c# üzerinden seçtiğim iki tarih arasındaki bütün tarihleri grid üzerine ekleyerek grid üzerindeki tarihin karşısında veritabanın da karşılığı varsa datagrid üzerinde ilgili tarihin karşısına yazdırmam gerekiyor.

Dediğim gibi veritabanı üzerinde örnekteki gibi 14 ve 16 sı var. fakat 15 i hiç bir şekilde mevcut değil. yani olmayan tarihleride listelemek istiyorum :)

Ferhat acar / 14.03.2023 / 08:00 17:00

Ferhat acar / 16.03.2023 / 08:00 17:00
 
Yok, hayır. SQL sorgusu olan yer hata vermiyor normalde. O alan site güvenliği yüzünden paylaşmaya izin vermiyor. O yüzden o kısmı öyle değiştirmiş.
Senaryoyu tam anlamadığım için sordum, sorgu mühim değil de dbye hangi durumda satır atılıyor, sadece program çalıştığı sürece (insert işlemi yoksa ya da localde bir dosyaya vs. atılmıyorsa) görülecek bir satır neden oluşacak, anlamadan yanlış yönlendirme yapmak istemedim.
 

Technopat Haberler

Yeni konular

Geri
Yukarı