VB.NET erreur MySqlDataAdapter [Résolu/Fermé]

Signaler
Messages postés
3
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
2 mars 2010
-
Messages postés
680
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
7 décembre 2012
-
Bonjour, tout d'abord je tiens à préciser que je commence juste la programmation avec VB.NET ^^.
Explication du principe et du problème :
- Je remplie un 'DataGridView' avec les enregistrements de ma base de données
- La connection à ma base de données s'effectue parfaitement
- Mon principe d'algo est de boucler sur le nombre de film trouvé dans la base de données et d'affecter à
chaque boucle le titre du film dans la requête qui me permettra de trouver les réalisateurs des films
- Voici le code :
...
' boucle sur le nombre de film
For i As Integer = 0 To myDataTable_film.Rows.Count - 1

tab_film(i) = myDataTable_film.Rows(i)("titre_film")

strQuery_rlt = "SELECT nom_realisateur, prenom_realisateur " & _
"FROM acl_realisateurs, acl_participer, acl_films " & _
"WHERE acl_realisateurs.id_realisateur = acl_participer.id_participant " & _
"AND acl_participer.id_film = acl_films.id_film " & _
"AND acl_films.titre_film = '" & tab_film(i) & "'"

myCommand_rlt.Connection = oConn
myCommand_rlt.CommandText = strQuery_rlt
MyAdapt_rlt.SelectCommand = myCommand_rlt
MyAdapt_rlt.Fill(myDataTable_rlt) ' l'erreur se produit à cette ligne

Me.DataGridView1.Rows.Add(tab_film(i), myDataTable_rlt.Rows(i)("nom_realisateur"))

Next
...
- Je tiens à préciser que toute mes varibles sont bien déclarées
- L'erreur se produit donc ici : MyAdapt_rlt.Fill(myDataTable_rlt) : L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne. Nom du paramètre : length
- En remplaçant la variable par une chaine de caractère l'erreur n'apparaît plus.
- J'avoue ne pas comprendre le problème
Si vous avez des pistes pour ce problème j'en serrais ravis.
Merci d'avance

5 réponses


pourquoi tu as mis MyAdapt_rlt.Fill(myDataTable_rlt) à l'interieur de la boucle?
Messages postés
3
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
2 mars 2010

Et bien parce que j'ajoute à chaque boucle la ligne correspondant à un enregistrement de ma table :S. Je devrais faire autrement ?

je pense oui, il est suffisant de charger le datatable une seul fois.
Je remplie un 'DataGridView' avec les enregistrements de ma base de données
pourquoi ne pas passer les données directement depuis ton datatable
datagridview1.datasource=datatable

Messages postés
3
Date d'inscription
mardi 2 mars 2010
Statut
Membre
Dernière intervention
2 mars 2010

Impécable merci beaucoup, en passant les données directement via le datasource je n'ai plus d'erreur.
Messages postés
680
Date d'inscription
lundi 21 décembre 2009
Statut
Membre
Dernière intervention
7 décembre 2012
69
Bonjour,

c'est la connexion ça marche bien donc auccun probleme

dim ds as new dataset()
dim da as new sqldataAdapter("select * from Nomtable",LaConnexion)
da.fill(ds,"Nomtable")

datadridview1.datasource=ds.tables("Nomtable")