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.
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());
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.
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.
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 ?
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.
Bu mesaja 1 cevap geldi. Cevapları Gizle
Ç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 :)
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
< Bu mesaj bu kişi tarafından değiştirildi Gökşen PASLI -- 3 Temmuz 2016; 14:04:41 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu hatanın resmi :
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
Bu da hata veren ksısım üstten dönem seçince atıyor.
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
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.
< Resime gitmek için tıklayın >< Resime gitmek için tıklayın >
< Bu mesaj bu kişi tarafından değiştirildi emirhan23 -- 9 Temmuz 2016; 13:22:31 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Buyrun Hocam.
https://app.box.com/s/k2sqrwjadcm30rm9iz14a5u1tfswaerc
Bu mesaja 1 cevap geldi. Cevapları Gizle
for (int i = 0; i < dataGridView1.Rows.Count-1; i++)
şeklinde dene
datagriddekaç sıra var resimden analşılır
Bu mesaja 1 cevap geldi. Cevapları Gizle
-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 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @Gökşen PASLI
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesajda bahsedilenler: @cezaalp
@cezaalp dediğiniz şekilde denedim fakat yine aynı hatayı verdi. Şimdi hem resimleri hem de veritabanını atayım.
< Resime gitmek için tıklayın >
Veritabanıda burada.
https://app.box.com/s/arj1zyq5uqe4iog25vr5srgbgqdby1li
Bir türlü çözemedim gitti.
Bu mesaja 1 cevap geldi. Cevapları Gizle
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
Bu mesaja 1 cevap geldi. Cevapları Gizle
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 ?
Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
Baya gizemli oldu gerçekten. İlginiz için çok teşekkür ediyorum.