18 Eylül 2018 Salı

Datagridview ve dictioanary kullanarak tabloda tekrarlayan elemanları bir araya toplama


Öğrenci sınav sonuç tablosunda tekrarlaya dataları tek satırda toplam olarak gösterme. Dictionary sınıfından bir örnek oluşturma ve datagridview tablosunu bu nesneden gelen datalar ile doldurma işlemi.

    
 Dictionary < string, Ogrenciler > ogrencilerGruplanmis = new Dictionary < string, Ogrenciler > ();

        private void btnGruplandir_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                // sicil 1 nolu kolonda, sicil gruplanmışta var mı kontrol et. Varsa bu satırdaki değerleri olan gruba ekle
                if (ogrencilerGruplanmis.ContainsKey(dataGridView1[1, i].Value.ToString()))
                {
                    Ogrenciler ogrenci = ogrencilerGruplanmis[dataGridView1[1, i].Value.ToString()];

                    ogrenci.DenemeSayisi += int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi += int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru += int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali += int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis += int.Parse(dataGridView1[8, i].Value.ToString());
                }
                else
                {
                    Ogrenciler ogrenci = new Ogrenciler();

                    ogrenci.SicilNo = int.Parse(dataGridView1[1, i].Value.ToString());
                    ogrenci.Ad = dataGridView1[2, i].Value.ToString();
                    ogrenci.Soyad = dataGridView1[3, i].Value.ToString();
                    ogrenci.DenemeSayisi = int.Parse(dataGridView1[4, i].Value.ToString());
                    ogrenci.YapilanDenemeSayisi = int.Parse(dataGridView1[5, i].Value.ToString());
                    ogrenci.Dogru = int.Parse(dataGridView1[6, i].Value.ToString());
                    ogrenci.Hatali = int.Parse(dataGridView1[7, i].Value.ToString());
                    ogrenci.Yanlis = int.Parse(dataGridView1[8, i].Value.ToString());

                    ogrencilerGruplanmis.Add(ogrenci.SicilNo.ToString(), ogrenci);
                }
            }

            int satir = 0;
            dataGridView2.Rows.Clear();
            foreach (KeyValuePair item in ogrencilerGruplanmis)
            {
                dataGridView2.Rows.Add();

                Ogrenciler ogrenci = item.Value;
                dataGridView2[0, satir].Value = satir + 1;
                dataGridView2[1, satir].Value = ogrenci.SicilNo;
                dataGridView2[2, satir].Value = ogrenci.Ad;
                dataGridView2[2, satir].Value = ogrenci.Soyad;
                dataGridView2[2, satir].Value = ogrenci.DenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.YapilanDenemeSayisi;
                dataGridView2[2, satir].Value = ogrenci.Dogru;
                dataGridView2[2, satir].Value = ogrenci.Hatali;
                dataGridView2[2, satir].Value = ogrenci.Yanlis;
                satir++;
            }
        }

    
  

Ogrenciler sınıfı :

    
    
    public class Ogrenciler
    {
        public int SicilNo { get; set; }
        public string Ad { get; set; }
        public string Soyad { get; set; }
        public int DenemeSayisi { get; set; }
        public int YapilanDenemeSayisi { get; set; }
        public int Dogru { get; set; }
        public int Hatali { get; set; }
        public int Yanlis { get; set; }
    }

    
  


16 Eylül 2018 Pazar

Datagridview da bir kolonda tekrarlayanları bulup yeni datagridview da tekrarlama sayilarini gösterme

    
    
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 12; i++)
            {
                dataGridView1.Rows.Add();
            }

            for (int i = 0; i < 3; i++)
            {
                dataGridView1[0, i].Value = "Ahmet";
            }

            for (int i = 3; i < 7; i++)
            {
                dataGridView1[0, i].Value = "Mehmet";
            }

            for (int i = 7; i < 12; i++)
            {
                dataGridView1[0, i].Value = "mustafa";
            }

        }
        Dictionary < string, int > tekrarlayanSayisi = new Dictionary < string, int > ();
        
        private void buttonSınıflandır_Click(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (tekrarlayanSayisi.ContainsKey(dataGridView1[0, i].Value.ToString()))
                {
                    tekrarlayanSayisi[dataGridView1[0, i].Value.ToString()] = 
                    int.Parse(tekrarlayanSayisi[dataGridView1[0, i].Value.ToString()].ToString()) + 1;
                }
                else
                {
                    tekrarlayanSayisi.Add(dataGridView1[0,i].Value.ToString(), 1);
                }
            }

            int satir = 0;
            dataGridView2.Rows.Clear();
            foreach (KeyValuePair < string, int > item in tekrarlayanSayisi )
            {
                dataGridView2.Rows.Add();
                dataGridView2[0, satir].Value = item.Key;
                dataGridView2[1, satir].Value = item.Value;
                satir++;
            }
        }
    }
}