VB.NET erreur MySqlDataAdapter

Résolu/Fermé
OocarlitooO Messages postés 3 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 2 mars 2010 - 2 mars 2010 à 11:59
holow1 Messages postés 680 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 7 décembre 2012 - 2 mars 2010 à 21:52
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

Utilisateur anonyme
2 mars 2010 à 19:22
pourquoi tu as mis MyAdapt_rlt.Fill(myDataTable_rlt) à l'interieur de la boucle?
0
OocarlitooO Messages postés 3 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 2 mars 2010
2 mars 2010 à 20:33
Et bien parce que j'ajoute à chaque boucle la ligne correspondant à un enregistrement de ma table :S. Je devrais faire autrement ?
0
Utilisateur anonyme
2 mars 2010 à 20:52
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

0
OocarlitooO Messages postés 3 Date d'inscription mardi 2 mars 2010 Statut Membre Dernière intervention 2 mars 2010
2 mars 2010 à 21:50
Impécable merci beaucoup, en passant les données directement via le datasource je n'ai plus d'erreur.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
holow1 Messages postés 680 Date d'inscription lundi 21 décembre 2009 Statut Membre Dernière intervention 7 décembre 2012 71
2 mars 2010 à 21:52
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")
0