Bonjour,
Je développe une application en VB-NET sous Visual Studio en utilisant une base de donnée locale (mdf).
J'arrive à remplir cette base de donnée et à extraire des informations pour les afficher dans un DataGridView.
Je bloque sur un problème concernant le Tri d'une colonne (pour l'instant de type varchar) qui contient des informations du genre : 1, 2, 11, 12, D1, D3, D17, 15E
Pour l'instant, voici mon code pour aller afficher dans mon DataGridView le contenu de ma table "tb_list" en triant la colonne "BRDP"
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim conn As New SqlConnection("Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Dtb.mdf;Integrated Security=True") Dim cmd As New SqlCommand cmd = conn.CreateCommand() cmd.CommandType = CommandType.Text cmd.CommandText = "select * from tb_list ORDER BY BRDP" conn.Open() cmd.ExecuteNonQuery() conn.Close() Dim dt As New DataTable() Dim da As New SqlDataAdapter(cmd) da.Fill(dt) 'OK Form3.DataGridView1.DataSource = dt
Une fois affiché, le tri est du genre : "1, 11, 12, 15E, 2, D1, D17, D3" au lieu de ce que je souhaiterais : "1, 2, 11, 12, 15E, D1, D3, D17"
J'ai compris que cela était dû au fait que ma colonne était de type varchar et que donc, je ne pouvais pas avoir un tri numérique.
J'ai essayé plusieurs variantes trouvées dans des forums :
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cmd.CommandText = "select * from tb_list ORDER BY LENGTH(BRDP), BRDP" cmd.CommandText = "select * from tb_list ORDER BY CAST(BRDP AS UNSIGNED INTEGER)" cmd.CommandText = "select * from tb_list ORDER BY BRDP+0" cmd.CommandText = "select * from tb_list Where CAST(BRDP As Integer)
Aucun de ces tris ne fonctionne, à chaque fois j'ai un plantage de l'application.
J'ai tenté aussi en modifiant le type de donnée (en passant de varchar à int), mais çà plante aussi.
J'ai supposé que le int n'accepte pas des valeurs non numériques.
Quelqu'un pourrait-il m'aider à comprendre pourquoi mes variantes de tri ne fonctionnent pas ?
Merci d'avance pour votre aide !
Partager