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.