Sort su una colonna di una DataTable [C#]

giovedì 19 novembre 2009 - 10.49

paquito_ita Profilo | Senior Member

Ciao,

in un'applicazione DB driven devo eseguire una query complessa i cui dati andranno poi utilizzati in diverse sezioni di un template con un ordering differente.

Non volendo eseguire la query N volte, cambiando solamente la clausula "ORDER BY" per filtrare i recor in base alla vista attuale, ho provato ad utilizzare:
DataTable dt; //Questa è la DataTable inizializzata con i record della query dt.DefaultView.Sort = "Date ASC"; //VISTA 1 foreach(DataRow row in dt.Rows) { object time = row["Date"]; ... } dt.DefaultView.Sort = "Name, ID DESC"; //VISTA 2 ...
Tuttavia i risultati che ottengo non sono affatto ordinati. Dimentico di impostare qualcosa? Ho anche provato a racchiudere il campo da ordinare fra parentesi:
dt.DefaultView.Sort = "[Name] DESC";
Ma senza risultato.
Come potrei fare quindi, avendo un DataSet/DataTable a ordinare i record ed eseguire un loop sulla RowCollection?

Grazie

Brainkiller Profilo | Guru

>in un'applicazione DB driven devo eseguire una query complessa
>i cui dati andranno poi utilizzati in diverse sezioni di un template
>con un ordering differente.

La sintassi penso che sia questa:

DataView view = DataTable1.DefaultView; view.Sort = "State, ZipCode DESC";

e poi assegni view al controllo.

Oppure per operazioni di questo tipo sui dataset puoi usare anche LINQ to Dataset:
http://msdn.microsoft.com/en-us/library/system.data.dataview.aspx

ultimo esempio a fondo pagina.
ciao


David De Giacomi | <empty>
http://blogs.dotnethell.it/david/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5