none
Datagrid'e veri çekme sorunu RRS feed

  • Soru

  • Merhaba,

    Bir datagridview nesnem var. Buraya veri çekerken tarih aralığı ile 2 tane combobox'tan faydalanıyorum.

    Sorunum şu;

    Tarih aralığını seçip, combobox'tan herhangi bir seçim yapmazsam (tüm veriler gelsin istiyorum) aşağıdaki hatayı veriyor.  


    16 Ocak 2017 Pazartesi 13:22

Yanıtlar

  • int Topla;
    int Sonuc = 0;
    
    for (int i = 0; i < txttablo.Rows.Count; ++i)
    {
                    
                    if (int.TryParse(txttablo.Rows[i].Cells[4].Value == null ? "0" : dataGridView1.Rows[i].Cells[4].Value.ToString(), out Topla))
                    {
                        Sonuc +=Topla;
                    }
    }
    bu şekilde düzeltirsen kodu çalışacaktır.

    bağlantı için mail atarsan bakalım.
    • Düzenleyen A_BLR 17 Ocak 2017 Salı 06:44
    • Yanıt Olarak İşaretleyen Erhan Ersoy 17 Ocak 2017 Salı 06:44
    17 Ocak 2017 Salı 06:14

Tüm Yanıtlar

  • olmayan bir şeyi int çevirmeye çalışıyorsun.

    Convert.ToInt32 yerine try parse kullansan daha sağlıklı olur.

    int Topla;
    int Sonuc = 0;
    if (int.TryParse(txttablo.Rows[i].cells[4].value, out Topla))
    {
        Sonuc = +Topla;
    }
    
    

    16 Ocak 2017 Pazartesi 13:44
  • Çok özür dilerim ama yapamadım.

    Benim kullandığım kodu tam olarak nasıl değiştirmem gerekiyor. 

    int Topla = 0;            
    
    for (int i = 0; i < txttablo.Rows.Count; ++i)
    {
    Topla = Convert.ToInt32(txttablo.Rows[i].Cells[4].Value);
    }
    
    txttoplam.Text = Convert.ToInt32(Topla) + " TL";
    Sizin verdiğiniz koda göre [i] değişkeni hata verdi. Tanımlamaya çalıştım ama yapamadım. Baya acemiyim kusura bakmayın...



    16 Ocak 2017 Pazartesi 14:10
  • Merhaba Erhan;

                int Topla = 0;
    
                for (int i = 0; i < dataGridView1.Rows.Count; ++i)
                {
                    Topla += Convert.ToInt32(dataGridView1.Rows[i].Cells[4].Value);
                }
    
                textBox1.Text = string.Format("{0:0.00 TL}", Topla);
    şu şekilde düzenlersen sanırım sorun kalmaz yazdığın kodları düzenledim.Kolay gelsin.


    16 Ocak 2017 Pazartesi 17:15
  • Maalesef aynı hatayı verdi. 
    17 Ocak 2017 Salı 05:18
  • int.TryParse("20"out Sayi)

    int Topla = 0; 

    int sayi = 0;           for (int i = 0; i < txttablo.Rows.Count; ++i) { Topla = int.TryParse(txttablo.Rows[i].Cells[4].Value,out sayi); } txttoplam.Text = int.TryParse(Topla,out sayi) + " TL";

    bi deneyebilir misin

    17 Ocak 2017 Salı 06:05
  • int Topla;
    int Sonuc = 0;
    for (int i = 0; i < txttablo.Rows.Count; ++i)
    {
        if (int.TryParse(txttablo.Rows[i].cells[4].value, out Topla))
        {
        Sonuc = +Topla;
        }   
    }

    bu şekilde kullana bilirsin.

    17 Ocak 2017 Salı 06:10
  • Denedim ama maalesef yine olmadı. Aşağıdaki hataları veriyor.


    17 Ocak 2017 Salı 06:12
  • int Topla;
    int Sonuc = 0;
    
    for (int i = 0; i < txttablo.Rows.Count; ++i)
    {
                    
                    if (int.TryParse(txttablo.Rows[i].Cells[4].Value == null ? "0" : dataGridView1.Rows[i].Cells[4].Value.ToString(), out Topla))
                    {
                        Sonuc +=Topla;
                    }
    }
    bu şekilde düzeltirsen kodu çalışacaktır.

    bağlantı için mail atarsan bakalım.
    • Düzenleyen A_BLR 17 Ocak 2017 Salı 06:44
    • Yanıt Olarak İşaretleyen Erhan Ersoy 17 Ocak 2017 Salı 06:44
    17 Ocak 2017 Salı 06:14
  • Bağlantı için mail gönderdim...
    17 Ocak 2017 Salı 06:36
  • Hatayı öğrenmen adına söylüyorum. Döngüye breakpoint koy. Hangi durumda  değerin null geldiğini tespit et. Daha sonra null değilse convert işlemini gerçekleştir diye  "şart" oluştur. Muhtemelen  döngüdeki i satır sayısını aşıyor. veya satırın 4'uncu hücresi null.
    17 Ocak 2017 Salı 09:30