Accéder à la valeur d'un champ [Résolu]

goalie60 4 Messages postés lundi 5 avril 2010Date d'inscription 7 avril 2010 Dernière intervention - 5 avril 2010 à 17:18 - Dernière réponse : goalie60 4 Messages postés lundi 5 avril 2010Date d'inscription 7 avril 2010 Dernière intervention
- 7 avril 2010 à 09:46
Bonjour!
Je débute en VB, donc excusez moi si je pose des questions idiotes ou si je tente des codes d'apprenti-sorcier à la limite de l'hérétisme ;-)
Je développe un logiciel qui me pose souci. Il contient une base de donnée créée avec SQL server. J'ai besoin d'accéder aux valeurs de certains champs pour effectuer des calculs. J'essaie donc ceci:

Dim tableau As Array
Dim ligne As Integer
Dim Row As DataRow
ligne = lstDepart.SelectedIndex
tableau = DataVilleTableAdapter.GetData.Select
Row = tableau(ligne)
latdegDep = Row.ItemArray(1)
latmindep = Row.ItemArray(2)
latsecdep = Row.ItemArray(3)
londegdep = Row.ItemArray(4)
lonmindep = Row.ItemArray(5)
lonsecdep = Row.ItemArray(6)

Sachant que lstDepart est remplie à partir du datavilletableadapter (elle affiche les noms des villes: l'utilisateur en sélectionne une => je récupère ses coordonnées dans mes variables)

Mais bon ça me parait bizarre comme manip' ;-)
Et puis autre problème: il arrive parfois à me sortir "L'index se trouve en dehors des limites du tableau." pour la ligne: Row = tableau(ligne)
Mais la liste et le tableau étant construits à partir du même datavilledatatable, comment le nombre de ligne de la liste peut-il être supérieur à celui du tableau?
Merci beaucoup pour votre aide!
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
nhervagault 6069 Messages postés dimanche 13 avril 2003Date d'inscription 15 juillet 2011 Dernière intervention - 5 avril 2010 à 19:13
3
Merci
Salut,

Regardes ce coach ici

Ca te donnera des bonnes methodes pour faire tes projets.

Car la methode pour lire les resultats que tu utilises est mauvaise.

Bon dev

Merci nhervagault 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 68 internautes ce mois-ci

Commenter la réponse de nhervagault
goalie60 4 Messages postés lundi 5 avril 2010Date d'inscription 7 avril 2010 Dernière intervention - 5 avril 2010 à 17:31
0
Merci
C'est encore moi. Je précise que mon erreur "l'index se trouve en dehors des limites du tableau." survient dans un cas précis:
J'ai deux form: l'une où se trouve ma liste, et une autre où se trouve un details depuis la source de données, pour permettre de rajouter ou de supprimer des villes. L'erreur survient notamment quand je ferme la form d'édition et que je reviens sur celle où est la liste, même si je n'ai effectué aucun changement.
Je précise tout de même le code associé au button permettant de quitter la form édition:

Private Sub cmdQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdQuit.Click

frmGestionnaire.DataVilleTableAdapter1.Fill(frmGestionnaire.DtVilleDataSet2.dataVille)
frmGestionnaire.DataVilleTableAdapter.Fill(frmGestionnaire.DtVilleDataSet.dataVille)
Close()

End Sub
Commenter la réponse de goalie60
goalie60 4 Messages postés lundi 5 avril 2010Date d'inscription 7 avril 2010 Dernière intervention - 6 avril 2010 à 11:06
0
Merci
Je me doutais bien que c'était de la bidouille mon truc.
Si j'ai bien compris il me faudrait plutot faire:

Dim ligne As Integer
ligne = lstDepart.SelectedIndex
latdegDep = dtVilledataset.ville.rows(ligne)(1)

'la latitude de départ se trouvant en colonne1

Je lance un débogage: ça a l'air de fonctionner...et en fait non!
Même problème qu'avant: quand je vais dans ma form d'édition et que je reviens dans ma form gestionnaire, j'ai droit à l'erreur "Aucune ligne à la position -1." pour ma ligne de code
latdegDep = dtVilledataset.ville.rows(ligne)(1)
Ce que je ne comprend pas, c'est que cette ligne se trouve au sein d'un Private Sub lstDepart_SelectedIndexChanged
Quand je reviens sur ma form gestionnaire je ne touche pas encore à ma liste. Pourquoi me dit-il ça?

Merci bien
Commenter la réponse de goalie60
goalie60 4 Messages postés lundi 5 avril 2010Date d'inscription 7 avril 2010 Dernière intervention - 7 avril 2010 à 09:46
0
Merci
Je crois que mon nouveau problème n'est pas forcément lié à l'ancien, je vais aller poser ma question ailleurs => fin du sujet.

Merci tout de même.
Commenter la réponse de goalie60

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.