Vb.net 2010 indexer une variable [Résolu/Fermé]

Signaler
Messages postés
88
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 mai 2017
-
Messages postés
88
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 mai 2017
-
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

Messages postés
15136
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
617
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é
Messages postés
88
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 mai 2017
2
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
Messages postés
15136
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
617
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.
Messages postés
88
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 mai 2017
2
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
Messages postés
15136
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 novembre 2020
617
Donc la liste est une façon de faire.
Messages postés
88
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
13 mai 2017
2
merci Whismeril, j'avance lentement mais avec la liste je dois pouvoir arriver à qqchose.