VB.NET erreur MySqlDataAdapter

Résolu
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
Configuration: Windows Vista / Firefox 3.5.8

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. pourquoi tu as mis MyAdapt_rlt.Fill(myDataTable_rlt) à l'interieur de la boucle?
    1. Et bien parce que j'ajoute à chaque boucle la ligne correspondant à un enregistrement de ma table :S. Je devrais faire autrement ?
      1. 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

        1. Impécable merci beaucoup, en passant les données directement via le datasource je n'ai plus d'erreur.
          1. 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")