BnJ99
Messages postés3Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention12 avril 2007
-
12 avril 2007 à 11:09
id2006
Messages postés3Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention13 avril 2007
-
13 avril 2007 à 12:05
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
id2006
Messages postés3Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention13 avril 2007 13 avril 2007 à 12:05
j'ai oublié, NON le tri n'est pas auto justement, dans les collection clef, valeur, le trie est tjs effectué sur la clef, ici le tri est sur le ou les champs qu'on a défini à l'aide de SortExpression et on utilise la méthode sort pour trier à moins d'avoir laissé la propriété Autosort = True, il faut désactiver cette propriété quand on charge la collection sinon le tri se fait à chaque insertion et ça rame, ensuite on la reactive apres le chargement pour des insertions une à une.
id2006
Messages postés3Date d'inscriptionvendredi 13 janvier 2006StatutMembreDernière intervention13 avril 2007 13 avril 2007 à 11:58
bonjour,
désolé pour les commentaires, pas le temps, pourtant je preche pour ça, mais là je suis
en phase de découverte de VB.NET
Pour mes devs. en vb6 j'utilisais la méthode qui consiste à créer des collections d'objets calqués sur la db, en fait un 3-tiers réduis à 2-tiers. (couche métier et acces donnée regroupees)
ex: si j'ai une table Users -> j'ai une classe cUsers(la collection) et une classe cUser
cUsers hérite de la collection "Inherits IGenericObject(Of Integer, cUser, cUsers)"
cUsers contient les méthodes Load (depuis la base) add, remove, item, etc...
cUser contient les propriétés tel que Prenom,nom, etc...
cUser contient Update
dans add,remove et update on
je mettrais un petit projet en ligne des que j'aurais un instant. désolé je fais pas le gars overbooké, mais là j'ai vraiment pas le temps
ex du ADD dans la collection
'OVERLOADS PAR CE QUE ADD EST DANS LA COLLECTION
Public Overloads Sub Add(ByRef User As cUser)
Try
Dim i As Integer
Dim SQL_Cnx As New SQLServer
SQL_Cnx.Connect("sa", "DAMO", "POR-ALEX\PORDAMO", "DAMO_PARAMS")
Dim SqlCmd As SqlCommand = New SqlCommand("INSERT INTO Users" & _
"(TypeUser, Civilite,Prenom,Nom,Login,Password)" & _
"Values(" & User.TypeUser & ", " & _
User.Civilite & ", " & _
User.Prenom & ", " & _
User.Nom & ", " & _
User.Login & ", " & _
User.Password & ")
'C'EST ICI QU ON SE SERT DE LA COLLECTION GENERIQUE
MyBase.Add(i, User)
Catch ex As Exception
MsgBox(ex.InnerException.Message)
End Try
End Sub
dans l'interface on peut ecrire
Private Sub LoadDataGrid()
Dim oUsers As cUsers
Dim oUser as cUser
Users.AutoSort=False
Users.load 'dans le load il y a la requete qui charge la collection
'ici on trie sur deux champs
Users.SortExpression = "Nom ASC, Prenom ASC"
Users.Sort()
For Each oUser In DADParams.Users
With oUser
dagUsers.Rows.Add(oUser.Key, _
oUser.Login, _
oUser.Prenom, _
oUser.Nom, _
oUser.DateNaissance, _
oUser.NumSS)
End With
Next
End Sub
voila si ça peut aider, désolé je ferais de mon mieux pour fournir un projet
clair, ceux qui ont le temps d'étudier la question me diront ce qu'ils en pensent.
Je dev. sur VB.NET depuis une mois et les limitations que j'avais avec VB6 se sont envolées.
ADSLASDL
Messages postés4Date d'inscriptionjeudi 21 avril 2005StatutMembreDernière intervention12 avril 2007 12 avril 2007 à 14:09
Bonjour,
en fait c'est une "Sorted list" que tu as créé.
SortedList: c'est une Classe .Net
Il permet l'accès aux valeurs par l'intermédiaire des clés associées ou des index.
C'est un hybride de HashTable et de Array.
On ajoute un élément par mySL.Add(Clé,Valeur)
La séquence d'index est basée sur la séquence de tri. Quand un élément est ajouté, il est inséré dans l'ordre de tri adéquat, et l'indexation s'ajuste en conséquence. Le tri est donc automatique.
On peut donc lire une valeur par sa Clé ou son Index:
Quand la clé d'un élément permet d'accéder à celui-ci à l'aide de la propriété d'indexeur Item, l'élément se comporte comme Hashtable.
mySL.Item(CLE) 'retourne la valeur correspondant à la clé CLE
Quand l'index d'un élément permet d'accéder à celui-ci à l'aide de GetByIndex ou de SetByIndex, l'élément se comporte comme Array (tableau avec un Index).
mySL.GetKey(3) 'retourne la Clé qui est dans l'élément d'index 3
mySL.GetByIndex(3) 'retourne la valeur qui est dans l'élément d'index 3
SortedList maintient en interne deux tableaux , un tableau pour les clés et un autre pour les valeurs associées.
A ton service
BnJ99
Messages postés3Date d'inscriptionvendredi 25 novembre 2005StatutMembreDernière intervention12 avril 2007 12 avril 2007 à 11:09
Bonjour,
d'après ce que je crois comprendre, c'est le source de ta bibliotheque, mais peux t'on avoir une petite appli de démonstration qui nous montrerait les possibilités de ta bibliotheque (ajout, suppression, accès avec les clef, etc.)
J'aurais 2 petites remarques après avoir lu le code :
- 1. Y'a des lignes de code mise en commentaire, il aurait été préférable de les supprimer (là je chipote)
- 2. Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code,
Tu fais un nouvelle classe ? Commente ton code pour dire à quoi elle sert.
Tu fais une nouvelle fonction un peu touffue ? Commente ton code pour dire ce qu'elle va faire.
Tu viens de finir un bout de code sortie de ton imagination délirante (si si, avoue) ? Commente ton code pour expliquer ce que ça fait et comment ça le fait.
C'est hyper important de commenter, d'une part pour nous qui lisons le code d'un autre, et d'autre pour toi. Car dans 6 mois quand tu auras besoin de remettre le nez dedans pour faire une modif' ou une amélioration...ben tu seras dans les pixels jusqu'au cou et tu perdras un temps fou à recomprendre ton propre travail.
13 avril 2007 à 12:05
ex de sortexpression
SortExpression = "Nom ASC, Prenom ASC"
SortExpression = "Nom ASC, Prenom DESC"
SortExpression = "Nom ASC"
SortExpression = "Nom ASC, Prenom DESC, DateDeNaissance ASC"
13 avril 2007 à 11:58
désolé pour les commentaires, pas le temps, pourtant je preche pour ça, mais là je suis
en phase de découverte de VB.NET
Pour mes devs. en vb6 j'utilisais la méthode qui consiste à créer des collections d'objets calqués sur la db, en fait un 3-tiers réduis à 2-tiers. (couche métier et acces donnée regroupees)
ex: si j'ai une table Users -> j'ai une classe cUsers(la collection) et une classe cUser
cUsers hérite de la collection "Inherits IGenericObject(Of Integer, cUser, cUsers)"
cUsers contient les méthodes Load (depuis la base) add, remove, item, etc...
cUser contient les propriétés tel que Prenom,nom, etc...
cUser contient Update
dans add,remove et update on
je mettrais un petit projet en ligne des que j'aurais un instant. désolé je fais pas le gars overbooké, mais là j'ai vraiment pas le temps
ex du ADD dans la collection
'OVERLOADS PAR CE QUE ADD EST DANS LA COLLECTION
Public Overloads Sub Add(ByRef User As cUser)
Try
Dim i As Integer
Dim SQL_Cnx As New SQLServer
SQL_Cnx.Connect("sa", "DAMO", "POR-ALEX\PORDAMO", "DAMO_PARAMS")
Dim SqlCmd As SqlCommand = New SqlCommand("INSERT INTO Users" & _
"(TypeUser, Civilite,Prenom,Nom,Login,Password)" & _
"Values(" & User.TypeUser & ", " & _
User.Civilite & ", " & _
User.Prenom & ", " & _
User.Nom & ", " & _
User.Login & ", " & _
User.Password & ")
'C'EST ICI QU ON SE SERT DE LA COLLECTION GENERIQUE
MyBase.Add(i, User)
Catch ex As Exception
MsgBox(ex.InnerException.Message)
End Try
End Sub
dans l'interface on peut ecrire
Private Sub LoadDataGrid()
Dim oUsers As cUsers
Dim oUser as cUser
Users.AutoSort=False
Users.load 'dans le load il y a la requete qui charge la collection
'ici on trie sur deux champs
Users.SortExpression = "Nom ASC, Prenom ASC"
Users.Sort()
For Each oUser In DADParams.Users
With oUser
dagUsers.Rows.Add(oUser.Key, _
oUser.Login, _
oUser.Prenom, _
oUser.Nom, _
oUser.DateNaissance, _
oUser.NumSS)
End With
Next
End Sub
voila si ça peut aider, désolé je ferais de mon mieux pour fournir un projet
clair, ceux qui ont le temps d'étudier la question me diront ce qu'ils en pensent.
Je dev. sur VB.NET depuis une mois et les limitations que j'avais avec VB6 se sont envolées.
12 avril 2007 à 14:09
en fait c'est une "Sorted list" que tu as créé.
SortedList: c'est une Classe .Net
Il permet l'accès aux valeurs par l'intermédiaire des clés associées ou des index.
C'est un hybride de HashTable et de Array.
On ajoute un élément par mySL.Add(Clé,Valeur)
La séquence d'index est basée sur la séquence de tri. Quand un élément est ajouté, il est inséré dans l'ordre de tri adéquat, et l'indexation s'ajuste en conséquence. Le tri est donc automatique.
On peut donc lire une valeur par sa Clé ou son Index:
Quand la clé d'un élément permet d'accéder à celui-ci à l'aide de la propriété d'indexeur Item, l'élément se comporte comme Hashtable.
mySL.Item(CLE) 'retourne la valeur correspondant à la clé CLE
Quand l'index d'un élément permet d'accéder à celui-ci à l'aide de GetByIndex ou de SetByIndex, l'élément se comporte comme Array (tableau avec un Index).
mySL.GetKey(3) 'retourne la Clé qui est dans l'élément d'index 3
mySL.GetByIndex(3) 'retourne la valeur qui est dans l'élément d'index 3
SortedList maintient en interne deux tableaux , un tableau pour les clés et un autre pour les valeurs associées.
A ton service
12 avril 2007 à 11:09
d'après ce que je crois comprendre, c'est le source de ta bibliotheque, mais peux t'on avoir une petite appli de démonstration qui nous montrerait les possibilités de ta bibliotheque (ajout, suppression, accès avec les clef, etc.)
J'aurais 2 petites remarques après avoir lu le code :
- 1. Y'a des lignes de code mise en commentaire, il aurait été préférable de les supprimer (là je chipote)
- 2. Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code, Commente ton code,
Tu fais un nouvelle classe ? Commente ton code pour dire à quoi elle sert.
Tu fais une nouvelle fonction un peu touffue ? Commente ton code pour dire ce qu'elle va faire.
Tu viens de finir un bout de code sortie de ton imagination délirante (si si, avoue) ? Commente ton code pour expliquer ce que ça fait et comment ça le fait.
C'est hyper important de commenter, d'une part pour nous qui lisons le code d'un autre, et d'autre pour toi. Car dans 6 mois quand tu auras besoin de remettre le nez dedans pour faire une modif' ou une amélioration...ben tu seras dans les pixels jusqu'au cou et tu perdras un temps fou à recomprendre ton propre travail.