Accéder à la valeur d'un champ

Résolu
goalie60 Messages postés 4 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 5 avril 2010 à 17:18
goalie60 Messages postés 4 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 7 avril 2010 - 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!

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
5 avril 2010 à 19:13
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
3
goalie60 Messages postés 4 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 7 avril 2010
5 avril 2010 à 17:31
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
0
goalie60 Messages postés 4 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 7 avril 2010
6 avril 2010 à 11:06
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
0
goalie60 Messages postés 4 Date d'inscription lundi 5 avril 2010 Statut Membre Dernière intervention 7 avril 2010
7 avril 2010 à 09:46
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.
0
Rejoignez-nous