bonjour,
SVP j'ai besoin de votre aide : je suis en train de développer une application sous VB.NEt 2005 express , et je suis bloqué sur un traitement depuis pas mal de temps: j'ai besoin de remplir un listbox avec des données ( cette tache est réalisé sans aucun problème) puis je veux trier ces résultats dans un sens décroissant( je l'ai effectué avec sucés) puis les affecter à nouveau au même listbox! le problème que j'ai c 'est que mon ListBox reçoit les données avant tri..puis il ajoute les données triées! alors que je ne veux afficher que les données triés seulement!!!
voici mon code :
Dim ee As New connexion
Dim myQuery3, myQuery, myQuery1, myQuery2 As String
ee.oConn.Open()
Dim compteur As Integer
myQuery = "select duree_panne from historique where code_machine='" & ComboBox9.Text & "';"
myQuery1 = "select distinct code_panne from historique where code_machine='" & ComboBox9.Text & "';"
myQuery3 = "select sum(duree_panne) from historique where code_machine='" & ComboBox9.Text & "';"
Dim MaCommande1 As New MySqlCommand(myQuery3, ee.oConn)
Dim MaCommande2 As New MySqlCommand(myQuery, ee.oConn)
Dim MaCommande3 As New MySqlCommand(myQuery1, ee.oConn)
compteur = MaCommande1.ExecuteScalar
Dim i, j As Integer
Dim var As Double
MaCommande3.ExecuteNonQuery()
Dim dr, dr2 As MySqlDataReader
dr = MaCommande3.ExecuteReader()
While (dr.Read())
ListBox1.Items.Add(dr.GetValue(i))
End While
dr.Close()
For i = 0 To ListBox1.Items.Count - 1
myQuery2 = "select sum(duree_panne) from historique where code_machine='" & ComboBox9.Text & "' and code_panne='" & ListBox1.Items.Item(i) & "';"
Dim MaCommande4 As New MySqlCommand(myQuery2, ee.oConn)
dr2 = MaCommande4.ExecuteReader
While dr2.Read
ListBox2.Items.Add(dr2.GetValue(0))
End While
dr2.Close()
Next
Dim tab(ListBox2.Items.Count - 1) As Double
Dim cara(ListBox2.Items.Count - 1), c As String
'stockage des données du listbox dans un tableau
For i = 0 To ListBox2.Items.Count - 1
tab(i) = ListBox2.Items.Item(i)
'ListBox2.Items.Remove(ListBox2.Items.Item(i))
cara(i) = ListBox1.Items.Item(i)
'ListBox1.Items.Remove(ListBox1.Items.Item(i))
Next
'tri du tableau
For i = 0 To ListBox2.Items.Count - 1
For j = i + 1 To ListBox2.Items.Count - 1
If tab(i) < tab(j) Then
var = tab(j)
tab(j) = tab(i)
tab(i) = var
c = cara(j)
cara(j) = cara(i)
cara(i) = c
End If
Next j
Next i
'For i = 0 To ListBox1.Items.Count - 1
' MsgBox(cara(i))
'Next
'remplissage du listbox avec les données triées à partir du tableau
For i = 0 To ListBox1.Items.Count - 1
ListBox2.Items.Add(tab(i))
ListBox1.Items.Add(cara(i))
Next