Şimdi Ara

LİNQ ile DataGridView üzerinde sorgu nasıl yazılır?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
2.033
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • visual studyo 2010 c# kullanıyorum


    formumda bir datagridview var bunun içindeki verileri linq ile sorgulamak istiyorum


    deneme 1:


    var sirala1 = from datasirala in dataGridView1.DataSource.ToString().ToList() select datasirala;
    listBox1.Items.Add(sirala1);
    hata=Object reference not set to an instance of an object.



    deneme 2:


    var sirala2 = from data in dataGridView1.Columns.ToString().ToList() select data;
    foreach (var s in sirala2)
    {
    listBox1.Items.Add(sirala2);
    }


    burada herhangibir hata vermiyor fakat listboxta alt alta bir sürü system.linq.enumerable+where select list literotor'2[system.char.system.char] yazısı çıkıyor verilerimin yerine







  • çünkü gridviwin datasourcesini stringe çeviriyorsun sonra da liste çeviriyorsun. sıralama işlemini gridviewe datasource olarak tanımladıgın nesne üzerinden yapman lazım. gridview içinden değil.
  • aslında datagridview'da veri göstermek için bir kaynak gösteriyor olman lazım. bunu datagridview içinde göstermeden kaynağı bir datatable'a atıp oradan sorgulayabilirsin.
    ds isimli bir dataset'in olduğunu varsayarsak:
    var query = ds.Tables[0].AsEnumerable()
    .OrderBy(d=> d.Field<string>("Column1"))
    .Select(d => d.Field<string>("Column1")).ToList();
  • bana datagridview deki verileri datasete yada datatable ye nasıl aktaracagımı gösterirmisiniz ? sonra dataset ve datatable üzerinden sorgu yapabilirmiyim ?
  • sayıları tek basamaklı yazdıgım zaman sıkıntı yok fakat iki basamaklı ve daha büyük sayılar yazdıgım zaman sıralama yapmıyor
    nasıl düzeltebilirim


    DataTable dt1 = new DataTable();

    dt1.Columns.Add("ad");
    dt1.Columns.Add("aded");
    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
    DataRow dr = dt1.NewRow();
    dr[0] = row.Cells[0].Value;
    dr[1] = row.Cells[1].Value;
    dt1.Rows.Add(dr);
    }



    var sirala5 = from s in dt1.AsEnumerable() orderby s.Field<string>("aded") descending select s;

    dataGridView2.DataSource = sirala5.AsDataView();
  • quote:

    Orijinalden alıntı: aksamyildizi

    sayıları tek basamaklı yazdıgım zaman sıkıntı yok fakat iki basamaklı ve daha büyük sayılar yazdıgım zaman sıralama yapmıyor
    nasıl düzeltebilirim


    DataTable dt1 = new DataTable();

    dt1.Columns.Add("ad");
    dt1.Columns.Add("aded");
    foreach (DataGridViewRow row in this.dataGridView1.Rows)
    {
    DataRow dr = dt1.NewRow();
    dr[0] = row.Cells[0].Value;
    dr[1] = row.Cells[1].Value;
    dt1.Rows.Add(dr);
    }



    var sirala5 = from s in dt1.AsEnumerable() orderby s.Field<string>("aded") descending select s;

    dataGridView2.DataSource = sirala5.AsDataView();

    var sirala5 = from s in dt1.AsEnumerable() orderby int.Parse(s.Field<string>("aded")) descending select s;

    int.Parse(s.Field<string>("aded"))

    Sıralarken string i parse et. integer e çevirsen sıralama sorunun olmaz. Tabi adde kolonuda sayı değerleri olması lazım.




  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.