Sayfa: [1]   Aşağı git
  Yazdır  
Gönderen Konu: DataGridview'de birden fazla sütünda ortalama almak.  (Okunma Sayısı 390 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
ismailkoca
Yeni Üye
*

Karma: 0
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 7


Üyelik Bilgileri
« : 09 Eylül 2008, 17:29:04 »

Arkadaşlar öncelikle sitenizden yeni haberdar oldum epeydir karşılaşamadığım Sayın Şahin Kalemi'de burada görünce mutlu oldum.
Şimdi benim sorunum şu ; Datagridview'de tek bir sütündaki verilerin aritmatik ortalamasını buluyorum. Fakat hep ilk bulduğum sonuç çıkıyor. Datagridview'de refresh olayını nasıl yapabilirim.
 
Ayrıca ve benim için en önemlisi birden fazla sütünda aritmetik ortalamayı, bir seferde nasıl aldırabilirim.
 
Kullandığım Kodlar şu şekilde ;
 
    yeni = New OleDbConnection(baglanti)
      yeni.Open()
      verial = New OleDbDataAdapter("select avg(Sozel) as ORT from OGRENCILER", yeni)
      al = New DataSet
      verial.Fill(al, "OGRENCILER")
      DataGridView1.DataSource = al.Tables(0)
      
Logged
Şahin KALEM
Bölüm Sorumlusu
*

Karma: 50
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 293


Türkiyeli değil TÜRK


Üyelik Bilgileri WWW
« Yanıtla #1 : 09 Eylül 2008, 21:27:15 »


verial = New OleDbDataAdapter("select avg(Sozel) as ORT1 ,avg(sayisal) as ORT2 from tablo1", yeni)



sorgunu bu şekilde yazarak bırden fazla sutunun ortalamasını alırsın. eğer yapmak istediğin farklı bişeyse sorunu biraz daha açıkla
Logged

Eger Son Nefesimi Vermeden Once Mutlu Olacagini Bilirsem Cehenneme Bile Gulerek Giderim.!

BU ŞEHİR BU KALABALIK BU KARMAŞA İÇİM BURKULUYOR ONCA İNSAN BİR SEN OLMUYOR VE SEN ONCA İNSANDAN BİRİ OLMUYORSUN
ismailkoca
Yeni Üye
*

Karma: 0
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 7


Üyelik Bilgileri
« Yanıtla #2 : 09 Eylül 2008, 21:48:11 »

Şahin Bey evet kastetiğim böyle bir şeydi fakat şimdi fark ettim bu kodlar benim datasetimdeki tüm sozel tablosunun ya da sayısal tablosunun içindekilerin ortalamasını alıyor, oysa ben önce bir sorguyla bazı verileri süzdürüyorum. Sınıf sınıf mesela ben sorgu işlemini yaptıktan sonraki gördüğüm datagridview'in ortalamasını almak istiyorum bunu nasıl yapabilirim acaba?

İlginize çok teşekkür ederim.
Logged
Şahin KALEM
Bölüm Sorumlusu
*

Karma: 50
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 293


Türkiyeli değil TÜRK


Üyelik Bilgileri WWW
« Yanıtla #3 : 09 Eylül 2008, 22:25:17 »

o zaman soyle yapacaksın. datasete sorgu ile verilerini al. ondan sonra datarow ekle. datarow da istediğin sutunların ortalamasnı alırsın
 
Linklerin Görülmesine Izin Verilmiyor
Linki Görebilmek Için Üye Ol veya Giris Yap
http://rapidshare.com/files/132622571/Personel_Bilgi.rar.html

 
burda basıt bı datarow orneği yapmıştım onu incele işine yarar sanırım
Logged

Eger Son Nefesimi Vermeden Once Mutlu Olacagini Bilirsem Cehenneme Bile Gulerek Giderim.!

BU ŞEHİR BU KALABALIK BU KARMAŞA İÇİM BURKULUYOR ONCA İNSAN BİR SEN OLMUYOR VE SEN ONCA İNSANDAN BİRİ OLMUYORSUN
ismailkoca
Yeni Üye
*

Karma: 0
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 7


Üyelik Bilgileri
« Yanıtla #4 : 10 Eylül 2008, 00:00:12 »

Hocam sizin projeyi aldım. Fakat  datarow işini kendi projeme uygulamayamadım.
Ortalama İlgili kullanım şekliyle ilgili de bir şey aklıma gelmedi.
Logged
Şahin KALEM
Bölüm Sorumlusu
*

Karma: 50
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 293


Türkiyeli değil TÜRK


Üyelik Bilgileri WWW
« Yanıtla #5 : 10 Eylül 2008, 19:43:39 »




Private Sub Personel_Bilgi_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

con.Open()
ds = New DataSet
adp = New OleDbDataAdapter("select * from PERSONEL", con)
adp.Fill(ds, "PERSONEL")

satir = ds.Tables(0).NewRow
satir(3) = Now
satir(1) = 0
satir(2) = 0
satir(4) = 0

For i = 1 To ds.Tables(0).Rows.Count - 1
satir(1) = satir(1) + ds.Tables(0).Rows(i).Item(1)
satir(2) = satir(2) + ds.Tables(0).Rows(i).Item(2)
satir(4) = satir(4) + ds.Tables(0).Rows(i).Item(4)
Next


satir(1) = satir(1) / (ds.Tables(0).Rows.Count)
satir(2) = satir(2) / (ds.Tables(0).Rows.Count)
satir(4) = satir(4) / (ds.Tables(0).Rows.Count)


ds.Tables(0).Rows.InsertAt(satir, ds.Tables(0).Rows.Count)
bs = New BindingSource(ds, "PERSONEL")
DataGridView1.DataSource = bs
con.Close()

End Sub



bu şekilde ortalamaları verecektır


Logged

Eger Son Nefesimi Vermeden Once Mutlu Olacagini Bilirsem Cehenneme Bile Gulerek Giderim.!

BU ŞEHİR BU KALABALIK BU KARMAŞA İÇİM BURKULUYOR ONCA İNSAN BİR SEN OLMUYOR VE SEN ONCA İNSANDAN BİRİ OLMUYORSUN
ismailkoca
Yeni Üye
*

Karma: 0
Offline Offline

Cinsiyet: Bay
Mesaj Sayısı: 7


Üyelik Bilgileri
« Yanıtla #6 : 12 Eylül 2008, 15:29:49 »

Şahin Bey henüz deneyebildim cevabınızı. Verdiğiniz kodları aynen kullandım. Fakat ortalamayı aldıramadım. Sadece en üstteki satırın ortalamasını aldırabildim. sorunu da henüz anlayamadım.
Kodları aynen yazılyorum ;

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim satir As DataRow
        Dim al As DataSet
        Dim apt As OleDbDataAdapter
        Dim bs As BindingSource
        Dim yol As String = Application.StartupPath.ToString()
        Dim con As New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0;Data Source=C:\cz.mdb")
        Dim i As Integer

        yeni = New OleDbConnection(baglanti)
        If (yeni.State = ConnectionState.Closed) Then
            yeni.Open()
        End If
        al = New DataSet()
        sorgu = "select * from OGRENCILER Where SINIFI like ?"
        verial = New OleDbDataAdapter(sorgu, yeni)
        'parametre belirleniyor
        parametre = New OleDbParameter()
        parametre.Value = TextBox1.Text + "%"
        verial.SelectCommand.Parameters.Add(parametre)
        verial.Fill(al, "OGRENCILER")
        DataGridView1.DataSource = al.Tables("OGRENCILER")

        satir = al.Tables(0).NewRow
        satir(3) = Now
        satir(1) = 0
        satir(2) = 0
        satir(4) = 0

        For i = 1 To al.Tables(0).Rows.Count - 1
            satir(1) = satir(1) + al.Tables(0).Rows(i).Item(7)
            satir(2) = satir(2) + al.Tables(0).Rows(i).Item(Karizmatik
            satir(4) = satir(4) + al.Tables(0).Rows(i).Item(9)
        Next


        satir(1) = satir(1) / (al.Tables(0).Rows.Count)
        satir(2) = satir(2) / (al.Tables(0).Rows.Count)
        satir(4) = satir(4) / (al.Tables(0).Rows.Count)


        al.Tables(0).Rows.InsertAt(satir, al.Tables(0).Rows.Count)
        bs = New BindingSource(al, "OGRENCILER")
        DataGridView1.DataSource = bs
        con.Close()


Teşekkürler.
Logged
Sayfa: [1]   Yukarı git
  Yazdır  
GoogleTagged

 
Gitmek istediğiniz yer: