folder Tahribat.com Forumları
linefolder C#, Asp.Net, .Net Core
linefolder C# Ödeme Tablosu Borçlular



C# Ödeme Tablosu Borçlular

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    Merhabalar,

     

    C# ta yaptığım bir proje var, @Yazilimci arkadaşım bilir çok ta yardımı dokundu, sağolsun. Ödeme Durum Tablosu diye bir formum var. Formumda 2 combobox (cmb_secilenay, cmb_secilenyil) 2 buton (btn_ödemeyapanlar,btn_borclular) bir de datagridview  var.  Şimdi cmb_secilenay da klasik 12 aylar var. cmb_secilenyil da ise yıllar devam ediyor 2016,2017,2018 .. şeklinde. Ay ve yıl bazında seçip btn_ödemeyapanlar a bastıgımda ödeme yapan o ay ve yıl içerisinde ödeme yapanları görüyorum.   -- ---  Ay ve yıl bazında seçip btn_borclular butonuna bastıgımda ise o ay ve yıl içerisinde ödeme yapmayanları görmekteyim. Sorunum şu; Ben yeni öğrenci kaydettiğimde atıyorum öğrenci 13/04/2016 tarihinde yani bugün kayıt olmuş olsun. Ben Mart ayı borçlularını çıkartmak istediğimde yeni kaydettiğim öğrenciyi de görüyorum.  Bunu nasıl bir yola bağlayabilirim. kayit tarihi ve başlama tarihlerini baz alarak bişeyler yapılabilir sanırım. Fikir almam gerekiyor, yardımcı olabilirseniz sevinirim. Kodlar şu şekilde;

     

    Ay ve yıl bazında ödemeleri gördüğüm tablo;

     

    tablo.Clear();
     
                baglanti.Open();
    OleDbDataAdapter adtr = new OleDbDataAdapter("select * from TBL_Ogrenci a where a.ogrenci_id in (select ogrenci_id from TBL_Odeme where odeme_ay='" + cmbbox_secilenay.Text + "' and odeme_yil=" + Convert.ToInt32(cmbbox_secilenyil.Text) + ")", baglanti);
     
                adtr.Fill(tablo);
     
                dataGridView1.DataSource = tablo;
     
                int total = dataGridView1.Rows.Count-1
    ;
                label2.Text = "Toplamda "+total+" adet ödeme yapılmış.";
     
                
                adtr.Dispose();
     
                baglanti.Close();

     

    Ay ve yıl bazında ödenmemişleri gördüğüm tablo,

    tablo.Clear();
                         
                        baglanti.Open();
                        
                        OleDbDataAdapter adtr2 = new OleDbDataAdapter("select * from TBL_Ogrenci a where a.ogrenci_id not in (select ogrenci_id from TBL_Odeme where odeme_ay='" + cmbbox_secilenay.Text + "' and odeme_yil=" + Convert.ToInt32(cmbbox_secilenyil.Text) + ")", baglanti);
    
                        adtr2.Fill(tablo);
                        dataGridView1.DataSource = tablo;
                        int toplamodenmemis = dataGridView1.Rows.Count - 1;
                        adtr2.Dispose();
                        baglanti.Close();

     

     


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    unbalanced
    unbalanced's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    edit.. team ver hocam bakalim en iyisi

     

    unbalanced tarafından 13/Nis/16 14:48 tarihinde düzenlenmiştir

    Ülkesini Seven Her Türk Vatandasi, Ülkesinin Sessiz Istilasi'na karsi durmak zorunda.
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    PM gönderdim.


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Jigsaw
    Jigsaw's avatar
    Kayıt Tarihi: 07/Nisan/2011
    Erkek

    @unbalanced hocam sorunumu çözdü. Çok çok teşekkür ediyorum, gerçekten satır satır sabretti. :)

    Kod;

     tablo.Clear();
    
                        int odenmeyentutar = 0;
                        int nextMonth=0;
                        int processYear = 0;
    
                        if (cmbbox_secilenay.SelectedIndex - 1 == 12) //son ay secili
                        {
                            nextMonth = 1;
                            processYear = Convert.ToInt32(cmbbox_secilenyil.Text) +1;
    
                        }
                        else
                        {
                            nextMonth = cmbbox_secilenay.SelectedIndex + 2;
                            processYear = Convert.ToInt32(cmbbox_secilenyil.Text);
    
                        }
    
                        var query = String.Format("select * from TBL_Ogrenci a where a.baslama_tarihi< CDATE('01/{0}/{1}') and  a.ogrenci_id not in (select ogrenci_id from TBL_Odeme where odeme_ay='{2}' and odeme_yil={3} ) order by a.ogrenci_id", nextMonth, processYear, cmbbox_secilenay.Text, Convert.ToInt32(cmbbox_secilenyil.Text));
                        var adtr2 = new OleDbDataAdapter(query,baglanti);
    
                        adtr2.Fill(tablo);
                        dataGridView1.DataSource = tablo;
                        int toplamodenmemis = dataGridView1.Rows.Count - 1;

     

    query 'deki CDATE metodu access veritabanları için geçerli imiş. Mssql 'de bu metod CONVERT(DATETIME,'01/{0}/{1}') olarak kullanılabiliyormuş. Unbalanced hocam metoduna kadar araştırdı sağolsun tekrardan :)


    Başkalarına hakim olan kuvvetlidir, kendine hakim olan kudretlidir
Toplam Hit: 1107 Toplam Mesaj: 4
c# odemeler borclu tablosu odeme tablosu