VB.NET erreur MySqlDataAdapter

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