Şimdi Ara

C# Veritabanında Aynı Olan Verileri Toplama ?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
9
Cevap
0
Favori
2.027
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • İyi Akşamlar, sorunumu şöyle açıklayayım.

    Şimdi ürünadını ve miktarını tuttuğum bir access veri tabanım var ve datagridview ile de görüntülüyorum. Ayrı bir Form açtım. Bunu listview e aktarıyorum ve oradan görünteleme yapbiliyorum. Fakat sorunum şu ki; aynı olan ürünleri bulacak , miktarlarını toplayacak ve tek ürün olarak gösterip karşısına o ürünlerin toplamını verecek. Şöyle örnekleyebilirim.

    Elma ||| 3
    Ayva ||| 5
    Armut||| 7
    Elma ||| 8
    Armut||| 10

    Listelerken de;

    Elma ||| 11
    Ayva ||| 5
    Armut||| 17

    şeklinde olmasını istiyorum. Dersenizki illa listviewde mi olacak hayır, datagridviewlede olabilir, listelemeden de datareader ile olabilir. ama bir türlü şu gruplandırmayı beceremedim. Yardımlarınız için şimdiden teşekkür ederim.



  • quote:

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

    https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php

    Çok işime yaradı, tam da istediğim bu, çok teşekkür ederim :)
  • quote:

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

    https://www.w3resource.com/sql/aggregate-functions/sum-with-group-by.php
    Peki bunu C#'da nasıl yapabiliriz?
    SQL'e değil de form'a yazmak istiyorum. Aradım ama bulamadım. :)
  • individual İ kullanıcısına yanıt
    Bu sql cümlesini c# ta kullanabilirsin :)

    < Bu ileti DH mobil uygulamasından atıldı >
  • emirhan23 E kullanıcısına yanıt
    Merhaba,
    Kabaca denemiştim ama biraz daha zorlayayım.
    Teşekkürler
  • individual İ kullanıcısına yanıt
    Yarın size örnek kod bloğu göndereyim 🤗

    < Bu ileti DH mobil uygulamasından atıldı >
  • emirhan23 E kullanıcısına yanıt
    Yalnız ben listview için deniyorum. Sizin elinizde uygun bir şey varsa gönderebilirseniz çok iyi olur. Kurcalayarak bir şekilde çalıştırabilirim diye düşünüyorum. Teşekkürler

    < Bu ileti mobil sürüm kullanılarak atıldı >

  • string kayit = "Select UrunAdi, SUM(Mikseregoreuretim), SUM(Torbayagoreuretim) from Uretim where Tarih>=@tar1 and Tarih<=@tar2 Group By UrunAdi";
    //Uretim tablosundaki sorgu.
    OleDbCommand komut2 = new OleDbCommand(kayit, baglanti);
    //Sorgumuzu ve baglantimizi parametre olarak alan bir OleDbCommand nesnesi oluşturuyoruz.
    OleDbDataAdapter da = new OleDbDataAdapter(komut2);
    //OleDbDataAdapter sınıfı verilerin databaseden aktarılması işlemini gerçekleştirir.

    da.SelectCommand.Parameters.AddWithValue("@tar1", dateTimePicker1.Value.ToShortDateString());
    da.SelectCommand.Parameters.AddWithValue("@tar2", dateTimePicker2.Value.ToShortDateString());

    DataTable dt = new DataTable();

    da.Fill(dt);

    dt.Rows.Add(); //SATIR EKLEME
    dt.Rows.Add(); //SATIR EKLEME
    dt.Rows.Add(); //SATIR EKLEME
    dt.Rows.Add(); //SATIR EKLEME
    dt.Rows.Add(); //SATIR EKLEME

    dataGridView1.DataSource = dt;// Datagridview hücre toplamını alt satıra yazdırma başlangıç
    double Toplam = 0;
    double Toplam2 = 0;
    int Satır = dataGridView1.Rows.Count;
    for (int i = 0; i < Satır - 1; i++)
    {
    if (dataGridView1.Rows[i].Cells[1].Value != DBNull.Value)
    {
    Toplam += Convert.ToDouble(dataGridView1[1, i].Value);
    }
    }

    for (int i = 0; i < Satır - 1; i++)
    {
    if (dataGridView1.Rows[i].Cells[2].Value != DBNull.Value)
    {
    Toplam2 += Convert.ToDouble(dataGridView1[2, i].Value);
    }
    }

    double Toplam3 = 0;
    Toplam3 = Toplam - Toplam2;

    dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[0].Value = "Toplam Miksere Göre Üretim Miktarı";
    dataGridView1.Rows[dataGridView1.Rows.Count - 4].Cells[1].Value = Toplam.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

    dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[0].Value = "Toplam Torbaya Göre Üretim Miktarı";
    dataGridView1.Rows[dataGridView1.Rows.Count - 3].Cells[2].Value = Toplam2.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

    dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[0].Value = "Mikser - Torba Üretim Farkı";
    dataGridView1.Rows[dataGridView1.Rows.Count - 2].Cells[1].Value = Toplam3.ToString(); // Datagridview hücre toplamını alt satıra yazdırma bitiş

    dataGridView1.Columns[0].HeaderText = "Ürün Adı"; //Datagridview sütun adı gir
    dataGridView1.Columns[0].Width = 300; //Datagridview sütun genişliğini gir

    dataGridView1.Columns[1].HeaderText = "Miksere Göre Üretim Miktarı";
    dataGridView1.Columns[1].Width = 170;

    dataGridView1.Columns[2].HeaderText = "Torbaya Göre Üretim Miktarı";
    dataGridView1.Columns[2].Width = 170;



    Şöyle açıklayayım; Uretim tablomda UrunAdi sütununa göre Mikseregoreuretim ve Torbayagoreuretim sütunlarının toplamlarını belirlediğim iki tarih arasında al ve datagridview de sütun ve satır ekleyerek yazdır.




  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.