Manque toujours la première donnée

Résolu
Signaler
Messages postés
50
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
11 mars 2010
-
Messages postés
50
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
11 mars 2010
-
Bonjour,

J'ai établis une connection sur mysql avec vb.net avec succés. En passant je suis sur windows 7 et j'utilise VS 2010.

MySQL Connector/NET 5.0.3


Lorsque je remplis une combobox il manque tours la première inscription. Je pense que c'est un problème de curseur mais je ne sais pas comment le corriger. Le tout doit ce faire lorsque je load le formulaire. Voici mon code source

Public myConnection As New MySqlConnection(My.Settings.MySQLConnectionString)

Public Sub openconnection()

myConnection.Open()

End Sub

Private Sub aRapport_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim SQL As String 'chaine contenant la requete SQL
Dim MyCommand As New MySqlCommand 'variable récupérant les données
Dim MyDataReader As MySqlDataReader 'variable affichant les données

Try
openconnection()
'attache la variable MyCommand à notre connexion
MyCommand.Connection = conn
'création de la requête
SQL = "SELECT * FROM departement "
'execute la requete SQL
MyCommand.CommandText = SQL
'récupère les données de la requête
MyDataReader = MyCommand.ExecuteReader
MyDataReader.Read()
Do While MyDataReader.Read()
ComboBoxDepartement.Items.Add(MyDataReader("nom"))
Loop
'ferme la connexion
MyCommand.Connection.Close()
'ferme la connexion
myConnection.Close()
Catch MySqlException As Exception
MessageBox.Show("Erreur SQL:" + MySqlException.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error)

End Try
End Sub

Merci d'avance

Cognac

Cognac

3 réponses

Messages postés
403
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
7 août 2020
1
Bonjour,

MyDataReader.Read()
Do While MyDataReader.Read()
   ComboBoxDepartement.Items.Add(MyDataReader("nom"))
Loop


Tu lis une premiere fois sans faire de traitement dessus, puis tu rentres dans ta boucle.
Si tu veux récupérer le 1er enregistrement enlève la 1ere ligne

Do While MyDataReader.Read()
    ComboBoxDepartement.Items.Add(MyDataReader("nom"))
Loop


Bonne Prog
Messages postés
50
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
11 mars 2010

oupps petite correction dans mon message. Le code devrait lire

...'attache la variable MyCommand à notre connexion
MyCommand.Connection = myConnection
et non pas

'attache la variable MyCommand à notre connexion
MyCommand.Connection = conn



Cognac
Messages postés
50
Date d'inscription
samedi 20 avril 2002
Statut
Membre
Dernière intervention
11 mars 2010

Gros merci. ça fonctionne

Cognac