Manque toujours la première donnée

Résolu
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010 - 11 mars 2010 à 14:53
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010 - 11 mars 2010 à 15:17
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

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
11 mars 2010 à 15:10
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
3
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010
11 mars 2010 à 14:56
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
0
cs_cognac Messages postés 50 Date d'inscription samedi 20 avril 2002 Statut Membre Dernière intervention 11 mars 2010
11 mars 2010 à 15:17
Gros merci. ça fonctionne

Cognac
0
Rejoignez-nous