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" :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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