Şimdi Ara

C# Veritabanı Aritmetik İşlem

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
17
Cevap
0
Favori
511
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar. Şuan C# üzerinden baist bir transkript sistem hazırlıyorum. Mysql Veritabanı kullanıyorum. Ders kayıtlarını, harf notlarını, ders saatlerini girdirip; veritabanına kaydını yapıyorum ve bunu da datagridview ie listeleyebiliyorum, bu konuda bir sıkıntım yok. Fakat dönemlik ve genel net ortalamasını hesaplatamadım. Yani Datagridview üzerinden mi yoksa veritabanından mı yapmalıyım ? Veya en önemlisi nasıl yapabilirim ? Teşekkür ediyorum.



  • Datagridde hücreleri okuyup integer çevirerek matematiksel işlem yapabilirsin.

    Datagridde satır ve sütun numaraları sıfırdan başlar...

    int ilksayi;

    ilksayi = Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value.ToString()); // Rows[0] 1. Satır Celss[0] 1. Sütundaki değeri okur...

    Değişkene atmadanda işlemi gerçekleştirebilirsin.

    Sonucu bulduktan sonra istediğin hücreye şu şekilde yazdırabilirsin..

    dataGridView1.Rows[0].Cells[2].Value = sonuc.ToString(); // Rows[0] 1. Satır Celss[2] 3. Sütundaki hücreye yazar...


    Yukarıyı başka siteden alıntıladım

    Döngü ilede tüm tabloyu okuyarak hesaplatırsınız hocam.
  • quote:

    Orijinalden alıntı: Mr.DarkGreen

    Datagridde hücreleri okuyup integer çevirerek matematiksel işlem yapabilirsin.

    Datagridde satır ve sütun numaraları sıfırdan başlar...

    int ilksayi;

    ilksayi = Convert.ToInt32(dataGridView1.Rows[0].Cells[0].Value.ToString()); // Rows[0] 1. Satır Celss[0] 1. Sütundaki değeri okur...

    Değişkene atmadanda işlemi gerçekleştirebilirsin.

    Sonucu bulduktan sonra istediğin hücreye şu şekilde yazdırabilirsin..

    dataGridView1.Rows[0].Cells[2].Value = sonuc.ToString(); // Rows[0] 1. Satır Celss[2] 3. Sütundaki hücreye yazar...


    Yukarıyı başka siteden alıntıladım

    Döngü ilede tüm tabloyu okuyarak hesaplatırsınız hocam.

    Çok teşekkür ediyorum Hocam. Bunu denemiştim ama galiba bir yerde yanlışlık yapmışım.Tekrar deneyeceğim. Tekrar teşekkür ediyorum :)




  • Denedim ama bir türlü beceremedim. Kodları şu şekilde düzenledim ama sonuç alamadım. Acaba nerede hata yapıyorum ?

     int ilksayi, ikincisayi; 
    int sonuc = 0, carpim = 0, satop=0;

    for (int i = 0; i <= dataGridView1.Rows.Count; i++)
    {
    ilksayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value.ToString()); // Rows[0] 1. Satır Celss[0] 1. Sütundaki değeri okur...
    ikincisayi = int.Parse(dataGridView1.Rows[i].Cells[3].Value.ToString());
    carpim += (ilksayi * ikincisayi);
    satop = Convert.ToInt32(dataGridView1.CurrentRow.Cells[1].Value.ToString());

    sonuc = carpim / satop;
    textBox1.Text = Convert.ToString(sonuc);
    }
  • resimle göster bakayım bir de for ile döndürme yapmışsın ama içeride i hiç kullanılmamış cells i şeklinde olması lazım



    < Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 3 Temmuz 2016; 14:04:41 >
  • Aynen yukarıdaki arkadaş haklı , içerde i kullanmamışsın
  • evet haklısınız. Baya bi değişik yöntenler denedimde. Yanlış kodu yazmışım oraya. :) Azıcık geç yazıyorum ama pek giremedim nete o kısmı düzelttim. Ama bu sefer datagridview'den tabloyu açınca programı durduruyor.

         int ilksayi, ikincisayi; 
    int sonuc = 0, carpim = 0, satop=0;

    for (int i = 0; i <= dataGridView1.Rows.Count; i++)
    {
    ilksayi = Convert.ToInt32(dataGridView1.Rows[i].Cells[1].Value.ToString()); // Rows[0] 1. Satır Celss[0] 1. Sütundaki değeri okur...
    ikincisayi = int.Parse(dataGridView1.Rows[i].Cells[3].Value.ToString());
    carpim += (ilksayi * ikincisayi);
    satop = Convert.ToInt32(dataGridView1.CurrentRow.Cells[1].Value.ToString());

    sonuc = carpim / satop;
    textBox1.Text = Convert.ToString(sonuc);
    }


    Bu hatanın resmi :

     C# Veritabanı Aritmetik İşlem
     C# Veritabanı Aritmetik İşlem


    Bu da hata veren ksısım üstten dönem seçince atıyor.
     C# Veritabanı Aritmetik İşlem
     C# Veritabanı Aritmetik İşlem

    birde unutmadan i siz şekilde hesaplatınca yani birinci ve 3. sütun işlem yaptırınca sadece ilk staırları yapıyor. Gerisini yaptıramadım. :)

    -----------------------------------------------------

    Ayrıca isterseniz programıda atabilirim.
     C# Veritabanı Aritmetik İşlem C# Veritabanı Aritmetik İşlem



    < Bu mesaj bu kişi tarafından değiştirildi emirhan23 -- 9 Temmuz 2016; 13:22:31 >




  • projeyi atsana bi bana sanki bir hücre fazladan okunuyor gibi geldi
  • quote:

    Orijinalden alıntı: Gökşen PASLI

    projeyi atsana bi bana sanki bir hücre fazladan okunuyor gibi geldi

    Buyrun Hocam.

    https://app.box.com/s/k2sqrwjadcm30rm9iz14a5u1tfswaerc
  • mysql kullanmışsın ayrıca veritabanıda göndermedin bende mysql de yok o yüzden tam bakamadım ama o datagridi doldurup resimini atsana bi


    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
    şeklinde dene
    datagriddekaç sıra var resimden analşılır
  • Gökşen PASLI G kullanıcısına yanıt
    quote:

    Orijinalden alıntı: Gökşen PASLI

    mysql kullanmışsın ayrıca veritabanıda göndermedin bende mysql de yok o yüzden tam bakamadım ama o datagridi doldurup resimini atsana bi


    for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
    şeklinde dene
    datagriddekaç sıra var resimden analşılır



    -1 koymadan yaparsa sanki daha mantıklı oluyor.yani şu şekilde dene bakalım çalışacakmı

    for (int i = 0; i < dataGridView1.Rows.Count; i++)




    Eğer senin yaptığın gibi
    for (int i = 0; i <= dataGridView1.Rows.Count; i++)
    böyle yaparsan , diyelim row sayısı sıfırmış , böyle olunca ne oldu , i < = 0 durumunu sağladığı için girecek yani null alana erişmeye çalışacaksın.



    < Bu mesaj bu kişi tarafından değiştirildi cezaalp -- 11 Temmuz 2016; 20:39:27 >
  • cezaalp kullanıcısına yanıt
    işte veritabanı vs olmadığı için mecbur deneme yoluyla olacak yada veriyle doldurup resmini de gösterse bakacaktım muhtemelen olmayan bir hücreye erişim yaptığı için oluyordur onu kendisi bulur herhalde
  • Yorumlarınız için çok teşkkür ediyorum. Evet veritabanı için kusura bakmayın, onu unutmuşum :)
    @cezaalp dediğiniz şekilde denedim fakat yine aynı hatayı verdi. Şimdi hem resimleri hem de veritabanını atayım.

     C# Veritabanı Aritmetik İşlem

    Veritabanıda burada.

    https://app.box.com/s/arj1zyq5uqe4iog25vr5srgbgqdby1li

    Bir türlü çözemedim gitti.




  • for (int i = 0; i < dataGridView1.Rows.Count-1; i++) baktın mı birde

    satop = Convert.ToInt32(dataGridView1.CurrentRow.Cells[1].Value.ToString());
    kısmını anlamadım seçili olan satırın birinci hücresine bölmeyi anlamadım
  • quote:

    Orijinalden alıntı: Gökşen PASLI

    for (int i = 0; i < dataGridView1.Rows.Count-1; i++) baktın mı birde

    satop = Convert.ToInt32(dataGridView1.CurrentRow.Cells[1].Value.ToString());
    kısmını anlamadım seçili olan satırın birinci hücresine bölmeyi anlamadım

    Evet Hocam onuda denedim. O işlem şöyle; gano hesaplarken ders saati ile harfnotu katsayısını çarptırıyorum bütün derslerin hepsini toplatıp, toplam ders saatine böldürmekti amacım. Ama beceremedim. Bende farklı bir yol deneyeceğim. DErs Girdiğim kısma ders sayısı kadar textbox açtırıp kullanıcıya tüm derslerini girdireceğim. Textboxlar üzerinden hesaplatıp, sonradan kayıt etmek isterse veritabanına kayıt ettireceğim. Sizce nasıl olur ?
  • öyle de olur da ilk kodun niye çalışmadığını anlamadım yani ben kendim gridi doldurup hesaplama yaptırdım bir hata vermedi neyse
  • quote:

    Orijinalden alıntı: Gökşen PASLI

    öyle de olur da ilk kodun niye çalışmadığını anlamadım yani ben kendim gridi doldurup hesaplama yaptırdım bir hata vermedi neyse

    Baya gizemli oldu gerçekten. İlginiz için çok teşekkür ediyorum.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.