Oppure

Loading
21/05/10 13:51
the_angel
ciao ragazzi...sto cercando di ordinare un datatable manualmente...

qualcuno ha idea di dove sbagli? mi ritorna solo la data più piccola...

grazie mille!

' procedure SelectionSort(a: lista dei numeri da ordinare);
'for i = 1 to n - 1
' posmin ← i
' for j = (i + 1) to n
' if a[j] < a[posmin]
' posmin &#8592; j
' aus &#8592; a[i]
' a[i] &#8592; a[posmin]
' a[posmin] &#8592; aus


Public Function OrdinaTabella(ByRef myDt As DataTable) As DataTable
Dim I, J As Integer
Dim DTOrdinato As DataTable = myDt.Clone()

Dim a As DataRow() = myDt.Select()

Dim PosMin As Integer
Dim RigaSuccessiva As DataRow = myDt.NewRow()
Dim Temp As DataRow = myDt.NewRow()

For I = 0 To a.Length - 1
PosMin = I
For J = I + 1 To a.Length - 1
If CDate(a(J)("Data";)) < CDate(a(PosMin)("Data";)) Then
PosMin = J
End If
Next J
Temp = a(I)
a(I) = a(PosMin)
a(PosMin) = Temp
DTOrdinato.ImportRow(a(PosMin))
Next I
Return DTOrdinato
aaa
21/05/10 13:54
nessuno
Ma i dati li ottieni con una SELECT da un database? Se è così, perchè non fai fare l'ordinamento al motore del DB?
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
21/05/10 14:44
the_angel
Sarebbe bello...

No, i dati arrivano da un un file...
Non posso usare il dataview perché quando faccio il sort,
la data dentro la tabella ovviamente è testo.

Per questo ho l'esigenza di ordinare "a mano"...
aaa
22/05/10 15:21
the_angel
Ho risolto...:-)

Con il metodo select del datatable ottengo un array di righe...
Ordino l'array di righe con l'algoritmo bubble sort,
e rimetto le righe ordinate in un'altra tabella!
aaa
23/05/10 18:00
Il Totem
La data non è un testo se hai impostato il tipo della colonna su Date. Potevi risolvere anche gestendo l'evento Sorting o scrivendo un Comparer personalizzato.
aaa
24/05/10 7:16
the_angel
Postato originariamente da Il Totem:

La data non è un testo se hai impostato il tipo della colonna su Date. Potevi risolvere anche gestendo l'evento Sorting o scrivendo un Comparer personalizzato.


Grazie della risposta. Se imposto la colonna del datatable su datetime,
posso visualizzare la data in formato 01/12/2010 ?8-|
aaa
24/05/10 19:00
Il Totem
Postato originariamente da the_angel:

Postato originariamente da Il Totem:

La data non è un testo se hai impostato il tipo della colonna su Date. Potevi risolvere anche gestendo l'evento Sorting o scrivendo un Comparer personalizzato.


Grazie della risposta. Se imposto la colonna del datatable su datetime,
posso visualizzare la data in formato 01/12/2010 ?8-|


Sì, ma non di default (a meno che l'ora non sia 12:00 o 0:00, non ricordo). Per visualizzarla sempre in formato dd/mm/yyyy dovresti gestire anche l'evento CellFormatting.
aaa
25/05/10 8:40
the_angel
Grazie delle info...farò meglio nel prossimo progetto....:k:
aaa