Vb.net 2010 indexer une variable

Résolu/Fermé
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 - 19 janv. 2017 à 07:26
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 - 20 janv. 2017 à 16:44
Bonjour,

pouvez vous m'expliquer comment indexer une variable svp, je ne trouve pas la bonne syntaxe, en gras dans le bout de code, en VBA pa de soucis, mais VB.net ????

dim resultat as string
dim MaVariable as integer

Do While dataread1.Read() ' plusieurs résultats

("resultat" & MaVariable) = dataread1.Item(2)

MaVariable = MaVariable + 1

Loop
merci pour votre aide,

Aurelie76

4 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
19 janv. 2017 à 07:35
Bonjour,

Vb.net n'a guère de rapport avec Vba que le nom.
Vb.net est un langage (tout) objet, il faut donc utiliser des collections de données. La plus simple étant la List(of)



Dim mesDonnees As List(Of String) = New List(Of sting)()
Do While dataread1.Read() ' plusieurs résultats 
       mesDonnees.Add(dataread1.Item(2))
Loop



À supposer que dans tout ton programme tu n'auras besoin que du champ 2. Si tu as besoin de plusieurs champs, alors il faut créer une classe, ou à chaque champ utile correspond à un exercice propriété et charger une liste de cette propriété
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
19 janv. 2017 à 13:20
Merci Whismeril , je me galère bien avec VB.NET.

je vais regarder sur le net pour list (of), je n'ai pas tout compris de ton aide. Peut-être que je n'ai pas mis assez de code aussi.

en fait je viens lire des items issues d'une bdd et quand j'interroge la base sur une colonne 1, ca me renvoie le résultat colonne 2. Le "pb", c'est que j'ai plusieurs fois la même valeur en colonne 1 et une valeur différente à chaque fois sur la colonne 2.
je voulais le code qui me permette de gérer une variable : "résultat"
pour avoir :

résultat1 = XXXX
résultat2=YYYY
résultat3=ZZZ

merci pour ton aide, je vais regarder si je peux trouver une soluce
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
19 janv. 2017 à 17:22
Je n'ai pas compris ton besoin, peux tu montrer un exemple de ce qu'il y a dans tes colonnes (des valeurs qui ne veulent rien dire, mais qui servent d'exemple) et ce que au final tu veux en faire.
Par ce que la façon de penser Objet n'est pas celle de VBA, le fait de chercher à reproduire un algo séquentiel n'est pas la bonne approche.


Quoiqu'il en soit, pour débuter en VB.net, ce cours est pas mal
https://plasserre.developpez.com/cours/vb-net/

Le seul reproche que je puisse lui faire est qu'il présente la programmation objet comme un effet de mode, or c'est comme ça qu'est conçu vb.net effet de mode ou pas.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
19 janv. 2017 à 20:47
je vais tenter de faire plus clair, en tout cas, merci pour ton aide.

colonne1 | colonne 2
NOM | prénom
Dupont | André
Dupont | Jacques
Durand | Philippe
Dupont | Thierry

ces données sont consignées dans une base de donnée SQL,
......
 connection1.Close() 
 connection1.ConnectionString = "Database=" & Table & ";Data Source=" & server & ";User Id=" & user_ID & ";Password=" & password
 connection1.Open()

 request_sql1 = "SELECT * FROM `annuaire` WHERE `USER_NAME` LIKE 'Dupont'"

commande1 = New MySql.Data.MySqlClient.MySqlCommand(request_sql1, connection1)
dataread1 = commande1.ExecuteReader()

        Do While dataread1.Read()

            MsgBox(dataread1.Item(2))
            
                 Loop

        connection1.Close()



le résultat affiche dans msgbox :

André (validation de ok du msgbox, enter)
Jacques (validation de ok du msgbox, enter)
Thierry (validation de ok du msgbox, enter)

ce que je souhaite, c'est avoir une variable qui consigne ces 3 données.

exemple :

résultat1 = André
résultat2 = Jacques
résultat3 = Thierry

pour enfin pouvoir exploiter ces 3 consignes "résultats(i)"

pas évident à expliquer ....

merci
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 928
19 janv. 2017 à 22:36
Donc la liste est une façon de faire.
0
aurelie76 Messages postés 88 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 13 mai 2017 3
20 janv. 2017 à 16:44
merci Whismeril, j'avance lentement mais avec la liste je dois pouvoir arriver à qqchose.
0