zeusensa
Messages postés21Date d'inscriptionvendredi 15 août 2008StatutMembreDernière intervention29 mai 2011
-
30 avril 2011 à 14:28
zeusensa
Messages postés21Date d'inscriptionvendredi 15 août 2008StatutMembreDernière intervention29 mai 2011
-
1 mai 2011 à 13:07
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
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 1 mai 2011 à 13:02
bonjour
au lieu de remplir le listbox la premiere fois mets tes données dans un array puis fais un array.sort et seulement ensuite tu fais un listbox.clear et tu copy l'array dans la listbox