Kom ihåg mig?
Home Menu

Menu


behöver lite hjälp med "top 5" på en datatable

Ämnesverktyg Visningsalternativ
Oläst 2012-11-15, 14:32 #1
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
Standard behöver lite hjälp med "top 5" på en datatable

Hej,
hoppas någon här inne kan hjälpa mig lite på traven,

- det jag vill göra är att ta ut ALLA värden från en databas
- sortera de efter antal km (görs i efterhand, då km inte finns med i db)
- visa endast top 5 (detta har jag problem med)

Kod:
...
 foreach (DataRow r in ds.Tables[0].Rows)
                {
                    DataRow row = table_b.NewRow(); 
                    
                    row[col1_b] = r["name"].ToString();
                    row[col2_b] = Helper.distance(double.Parse(sLat.Replace(".", ",")), double.Parse(sLng.Replace(".", ",")), double.Parse(r["lat"].ToString().Replace(".", ",")), double.Parse(r["lng"].ToString().Replace(".", ",")), 'K');

                    table_b.Rows.Add(row);
                }

                table_b.DefaultView.Sort = "km ASC";

                GridView2.DataSource = table_b; //<-- detta gör ju så att hela listan kommer med, men här vill jag på något sätt även lägga till "top 5"
                GridView2.DataBind();
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-15, 14:47 #2
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
naak2803 naak2803 är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2011
Inlägg: 767
löst!
lösta på detta sättet, vet dock inte om det är den bästa! men det funkar... =)

Kod:
foreach (DataRow r in ds.Tables[0].Rows)
                {
                    DataRow row = table_b.NewRow(); 
                    
                    row[col1_b] = r["name"].ToString();
                    row[col2_b] = Helper.distance(double.Parse(sLat.Replace(".", ",")), double.Parse(sLng.Replace(".", ",")), double.Parse(r["lat"].ToString().Replace(".", ",")), double.Parse(r["lng"].ToString().Replace(".", ",")), 'K');

                    table_b.Rows.Add(row);
                }

                table_b.DefaultView.Sort = "km ASC";

                DataTable cloneDataTable = table_b.Clone();

                for (int i = 0; i < 1; i++)
                    cloneDataTable.ImportRow(table_b.Rows[i]);

                GridView2.DataSource = cloneDataTable;
                GridView2.DataBind();
naak2803 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-15, 15:32 #3
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
digiArt digiArt är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Jan 2004
Inlägg: 1 429
Google är din vän: http://stackoverflow.com/questions/1...get-the-top-10

Kod:
var rows = MyDataSet.Tables[0].Rows
   .Cast<DataRow>()
   .OrderByDescending(r => r["columnName"]) 
   .Take(10);
digiArt är inte uppkopplad   Svara med citatSvara med citat
Oläst 2012-11-16, 06:27 #4
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
Borde vara mer effektivt att mata in avståndet i databasen och sedan köra en top 5 direkt i databaslagret.
jonny är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 19:58.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017