Salut, ça fait un long moment que je cherche, et ça commence à me rendre fou.
j'ai dut trouver une bonne dizaine de solutions mais aucune ne fonctionne !
Je vous expose le problème :
J'utilise un Datagridview ( vide ) et au chargement de form1, je lui donne pour source un Dataset.
Je veux faire une ligne des plusieurs données et je veux pouvoir les classer dans l'ordre croissant ou non, mais ça ne fait absolument pas comme je veux
Pour faire simple :
-Au départ j'ai ça :

- Je veux classer par ordre décroissant :

C'est pas très très décroissant
( Vous pouvez remarquer que ça a classé d'après le premier caractère
)
J'ai lu des choses comme quoi on peut changer le mode de tri des commandes, mais ça ne fonctionne pas, et d'ailleurs je ne sais pas qu'est-ce que ça ferait ...
Sinon j'ai tenté de faire une sorte de fonction de "tri à bulle" :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| Private Sub DataGridView1_ColumnHeaderMouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.ColumnHeaderMouseClick
Dim Temp As Integer = DataGridView1.SortedColumn.Index
Dim i As Integer = 0
Dim Tamp As String
While i < DataGridView1.Rows.Count
If DataGridView1.Item(Temp, j).Value > DataGridView1.Item(Temp, j + 1).Value Then
Tamp = DataGridView1.Item(Temp, j + 1).Value
DataGridView1.Item(Temp, j + 1).Value = DataGridView1.Item(Temp, j).Value
DataGridView1.Item(Temp, j).Value = Tamp
i = 0
End If
i = i + 1
End While
End Sub |
J'ai put faire des erreurs, mais de toute façon on obtiens le même resultat qu'au début ...
Sinon, l'ajout dans la base se fait comme ça :
NewRow(7) = CLng(CDR(0)).ToString("#,#")
j'ai essayé sans le séparateur de milliers mais ça fait pareil :
Enfin bref, je commence à désespérer, pouvez vous m'aider à résoudre ce problème ?
Merci d'avance
Partager