Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
.NET Framework
Dataview. Si potrà tornare indietro?
mercoledì 26 gennaio 2005 - 13.49
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
lupotana
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 26 gen 2005 - 13:49
Ho un piccolo problema,
sentite la mia idea e ditemi dove sbaglio
Ho un bel datatable popolato. Datatable dt = GetDataTable(); // Per esempio....
Però ora voglio applicare un ordinamento.
Penso ad un dataview istanziato con il mio dt Dataview dv = new DataView(dt);
Applico l'ordinamento dv.Sort("ORDINE DESC"); // Per esempio
L'ordinamento funziona, ma non sulla sulla dv // E' ORDINATO
tabella dv.Table // NON E' ORDINATO
Voi sapete perchè non ordinata la proprietà Table e se c'è un metodo più furbo per ordinare un DataTable?
Grazie mille e buon .NET a tutti...
lupotana
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 26 gen 2005 - 14:36
Scusa sono stato poco chiaro.
Vorrei ordinare un datatable.
lupotana
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 26 gen 2005 - 15:02
OK, ma mettiamo che a me serva un datatable e non un dataview come oggetto finale dell'ordinamento.
Se applico l'ordinamento sul dataview come faccio a riconvertirlo in datatable ?
Io ho sempre usato la proprietà Table del dataview ma a quanto pare descrive solo la sorgente dati così come arriva allo stesso dataview.
Cteniza
Profilo
| Guru
1.509
messaggi | Data Invio:
mer 26 gen 2005 - 16:28
Il datatable è il diretto risultato dell'estrazione effettuata dalla fonte dati.
Il suo ordine dipende quindi dalla chiave presente nel datatable oppure, se senza chiave dalla select che hai immesso e/o dall'eventuale presenza di "order by" e/o dall'indice (cursore) utilizzato per lo scorrimento.
La datatable produce una defaultview (una view di default) che presenta i dati nello stesso ordinamento presente nella chiave.
Per cambiare l'ordine in una table senza chiave puoi fare l'estrazione con un altro ordine.
Per cambiare l'ordine in una table con chiave devi modificare la chiave.
Oppure (alternativa alle due) inserisci una nuova colonna e la dichiari chiave.
Durante la select/fill della tabella assegni anche questa nuovo campo che in seguito potrai riutilizzare per cambiare/impostare l'ordine
lupotana
Profilo
| Junior Member
83
messaggi | Data Invio:
mer 26 gen 2005 - 16:38
Il mio scopo era proprio quello di cambiare l'ordinamento di una datatable senza rifare la SELECT (immagina che il datatable sia elaborato a mano e non arrivi direttamente dal database).
Se devo dare la mia datatable in pasto ad una datagrid il gioco è fatto, creo un dataview e gli passo il datatable impostando come fonte dati del datagrid la dataview.
Ma il mio obbiettivo non è avere una dataview ma un datatable, pensavo si potesse ricavare la table ordinata dal dataview ed invece no.
Che sfiga !!!
Lucifel
Profilo
| Junior Member
104
messaggi | Data Invio:
mer 3 ott 2007 - 13:23
Allora c'è un modo per ordinare un datatable?
Servirebbe anche a me questa cosa.
Ho un datatable caricata tramite una query, ma è ordinata secondo l'ordine alfabetico della descrizione invece dell'id (è così perché la faccio io).
Io ho bisogno di avere una datatable ordinata. Non c'è un modo semplice di orindarla?
Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------
Teech
Profilo
| Expert
573
messaggi | Data Invio:
mer 3 ott 2007 - 14:31
Secondo me non c'è modo!!!
Ragionando a livello logico:
Ordinare i dati serve solo a livello "visivo" in quanto sono le chiavi che identificano ogni singolo record...
Se dovete fare operazioni sui record lo farete attraverso chiave e non a livello posizionale...
Se dovete ciclare i dati per fare operazioni lo si può fare da un DataReader o comunque una lettura sequenziale di dati estratti ad hoc per la procedura...
Avere un DataTable ordinato a cosa può servire? Qual è lo scopo del vostro ordinamento?Perchè dovete avere i dati ordinati in tabella?
Vi faccio queste domande perchè mi sfugge una reale applicazione dell'ordinamento diretto dei dati in tabella e potrebbe essere interessante scoprire questa motivazione o potrebbe servire a darvi una soluzione alternativa...
Ciao!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
Lucifel
Profilo
| Junior Member
104
messaggi | Data Invio:
mer 3 ott 2007 - 15:08
Non so gli altri, ma io ho bisogno di avere i dati ordinati perchè sto facendo un'applicazione finanziaria che calcola ratei e e tassi in base alla data di quello precedente in lista.
Purtroppo non posso estrarli già ordinati perché la funzione è parecchio complessa e mi estrae dati in ordine alfabetico (e non posso estrarli per data) quindi l'unica soluzione è ordinarli dopo.
E solo dopo che ho ordinato e che ho calcolato i tassi li posso visualizzare, per questo mi serviva ordinare la datatable.
Comunque ho trovato una soluzione non ottima ma per ora mi posso accontentare. Ho trovato un algoritmo di mergesort che mi ordina un arraylist. Quindi non faccio altro che convertire la mia datatable in un arraylist, lo ordino e poi lo riconverto.
se hai una soluzione migliore resto in attesa
Diego
-----------------------------------
Avanti sempre e comunque!
-----------------------------------
Teech
Profilo
| Expert
573
messaggi | Data Invio:
mer 3 ott 2007 - 16:19
Secondo me hai un DataTable che ti servirà a qualcosa, tipo visualizzare i dati su una griglia...
Il calcolo degli interessi che devi fare necessita di una set di record ordinati per data...
Dal mio punto di vista sono semplicemente set di record diversi e quindi puoi usare la DataTable per quello che rigurda le operazioni che stai già facendo mentre per il calcolo degli interessi puoi popolarti e leggerti un DataReader (sequenzialmente) o un DataTabla diverso facendo una select sul DB... Se poi nel set di record utile al calcolo degli interessi devi fare cose particolari puoi utilizzare una Stored Procedure o una Function lato DB che ti restituiscono i record come vuoi...
Non ti conviene, secondo me, utilizzare la stessa DataTable per operazioni diverse...
Ciao!!!!!
--------------
Maurizio Brini
--------------
Nessuna impresa è mai stata compiuta da un uomo ragionevole
Torna su
Stanze Forum
Elenco Threads
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 !