Menü

Access Veritabanından İstenilen Sütunun Toplamını Almak

22 Ocak 2015 - Microsoft

toplaminekrangoruntusu        Access Veritabanı ile oluşturduğumuz veritabanından içerisinde float, int, byte (herhangi bir sayı tipi) olan sütunun toplamını alan fonksiyon ve sql sorugusundan bahsedeceğim. Ben projemdeki gelir alanının toplamını alırken kullandım. Tüm gelirlerin toplamını alıp içerisinden peşin gelirler ne kadar, taksitli gelirler ne kadar olduğunu buldum. Daha sonra da bunları yüzdelik olarak ((pesingelirler*100)/tumgelirler) şeklindeki formül yüzde olarak hesaplamada kullanılacaktır. Kod kısmına gelecek olursak;

public static OleDbDataReader Select(string sQuery)
{

OleDbConnection conn = null;
OleDbCommand db = null;
OleDbDataReader rs = null;

conn = new OleDbConnection(“Bağlantı cümlesi”);
conn.Open();
db = new OleDbCommand(sQuery, conn);
rs = db.ExecuteReader(CommandBehavior.CloseConnection);
return rs;

}

Yukarıdaki kodda bağlantı işlemlerini daha önceki yazımda anlatmıştım. Okumayanlar linkteki bağlantıdan ulaşabilirler. https://erencol.wordpress.com/2013/03/03/c-access-2007-baglantisi/ 

Fonksiyon Datareader tipinde bir rs değişkeni döndürmekte. Bunu program içerisinde çağırırken de aşağıdaki kod satırları işimizi görecektir.

OleDbDataReader old = Db.Select(“SELECT SUM (GelirTutar) as GelirTopla FROM Gelir Where GelirTipi=’Pesin’ “);
while (old.Read())
{
label1.Text = old[“GelirTopla”].ToString();
}

Tekrar datareader tipinde bir old değişkeni tanımladık. Db classımızın ismi ve bu class içerisindeki Select fonksiyonuna ulaştık. Bu fonksiyonu da datareader  old nesnesini de while döngüsünün içine alarak old’den veri okunduğu sürece işlemde kalmasını sağladık. Döngü içerisinde de gelen toplam verisini label’a yazdırdık. İstersek bu veriyi float tipine dönüştürüp matematiksel işlemler de gerçekleştirebilirsiniz. Yapacağınız işlerin sınırı hayal gücünüzle sınırlı. 

    Yüzde olarak hesaplama işlemine de değinecek olursak;

float pesin=float.Parse(label1.Text);
float tumu = float.Parse(label2.Text);
float taksit = float.Parse(label3.Text);
label4.Text = ((pesin * 100) / tumu).ToString();
label5.Text = ((taksit * 100) / tumu).ToString();

(Kod aşamasında desteklerini esirgemeyen Elif Ayşe Gökçe hanıma teşekkürü borç bilirim :)))

Bir Cevap Yazın