Remplir un datagridview à partir de résultat d'une requete sql [Résolu]

Messages postés
143
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
8 août 2019
- - Dernière réponse : info254
Messages postés
143
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
8 août 2019
- 8 août 2019 à 16:18
Bonjour
je suis en cours de développement d'une petite application de Gestion des missions(VB.NET-- SQL SERVER 2008) ,mais j'ai une problème lors de récupération des données à partir de la base dans une DatagridView en mode connecté avec la boucle While.il affiche à partir de deuxième enregistrements c'est à dire il ne m'affiche pas la première enregistrements
Voici mon code :

Private Sub Buttonverif_mission_Click(sender As Object, e As EventArgs) Handles Buttonverif_mission.Click
If Me.Textnum_mission.Text = "" Then
MsgBox("Veuillez saisir le numero")
Else
command.CommandText = "SELECT * FROM [Ordre_Mission].[dbo].[mission],[Ordre_Mission].[dbo].[destination] WHERE mission.id_mission=destination.num_mission AND mission.id_mission ='" & Me.Textnum_mission.Text & "'"
connection.Open()
Dim myreader As SqlDataReader = command.ExecuteReader()
If myreader.HasRows = True And myreader.Read Then

Me.DataGridViewmod_miss.Enabled = True
Me.DataGridViewmod_miss.Visible = True
Me.Label_chauff.Visible = True
Me.Combochauf.Visible = True
Me.Labelmat_v.Visible = True
Me.ComboBoxmat.Visible = True
Me.Labeldate_depa.Visible = True
Me.Datedep.Visible = True
Me.Labeldate_ret.Visible = True
Me.Dateret.Visible = True
Me.Labelheur_dep.Visible = True
Me.Textheur_dep.Visible = True
Me.Labelheur_ret.Visible = True
Me.Textheur_ret.Visible = True
Me.Labelkm.Visible = True
Me.Textkm.Visible = True
Me.Labelrem.Visible = True
Me.Textrema.Visible = True
Me.Label_num_miss.Visible = True
Me.Labelnum_mis.Visible = True
Me.Labelnote.Visible = True
Me.Labeldep.Visible = True
Me.Combo_dep.Visible = True
Me.Labeldest.Visible = True
Me.Combodest.Visible = True
Me.Label_num_miss.Visible = True
Me.Textnum_mission.Visible = False
Me.Labelnum_miss.Visible = False
Me.Buttonverif_mission.Visible = False
Me.Buttonmodif_miss.Visible = True
Me.Buttoninsert.Visible = True
Me.Buttonquite2.Visible = False
Me.Buttonquit1.Visible = True
Me.Combochauf.Text = myreader(1)
Me.ComboBoxmat.Text = myreader(3)
Me.Datedep.Text = myreader(14)
Me.Textheur_dep.Text = myreader(13).ToString
Me.Labelnum_mis.Text = myreader(0)
Me.Textrema.Text = myreader(5)
Me.DataGridViewmod_miss.Rows.Clear()

While myreader.Read

Me.DataGridViewmod_miss.Rows.Add(myreader(15), myreader(16), myreader(17), myreader(18), myreader(0))

End While
myreader.Close()
connection.Close()
Else
MsgBox("Mission inexistant")
End If
connection.Close()
End If
connection.Close()
'End If
End Sub

Afficher la suite 

1 réponse

Messages postés
8332
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 août 2019
413
0
Merci
bonjour, merci d'utiliser les balises de code quand tu postes du code.
si tu veux traiter le premier enregistrement, il est préférable de ne pas faire deux fois
myreader.Read
avant le traitement.
info254
Messages postés
143
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
8 août 2019
1 -
Bonjour et merci,
non je veux traiter tous les enregistrements mais la boucle m' affiche à partir de deuxièmes enregistrements
yg_be
Messages postés
8332
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
24 août 2019
413 -
sais-tu ce que fait
myreader.Read
?
info254
Messages postés
143
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
8 août 2019
1 -
elle m'affiche le résultat mais à partir de deuxièmes enregistrements c'est à dire affiche deuxièmes enregistrements , 3 eme enregistrement ... mais n'affiche pas la 1ere enregistrements comme vous indique l'image
info254
Messages postés
143
Date d'inscription
samedi 2 janvier 2010
Statut
Membre
Dernière intervention
8 août 2019
1 -
pbm résolu merci :)
voici le code exécutable :
 Private Sub Buttonverif_mission_Click(sender As Object, e As EventArgs) Handles Buttonverif_mission.Click
If Me.Textnum_mission.Text = "" Then
MsgBox("Veuillez saisir le numero")
Else
'========================================================================================================================
'command.CommandText = "SELECT * FROM [Ordre_Mission].[dbo].[mission] WHERE id_mission ='" & Me.Textnum_mission.Text & "'"==> fonctionne bien
'command.CommandText = "SELECT * FROM [Ordre_Mission].[dbo].[mission],[Ordre_Mission].[dbo].[destination] WHERE mission.id_mission=destination.num_mission AND id_mission ='" & Me.Textnum_mission.Text & "'" 'en marche
command.CommandText = "SELECT * FROM [Ordre_Mission].[dbo].[mission],[Ordre_Mission].[dbo].[destination] WHERE mission.id_mission=destination.num_mission AND mission.id_mission ='" & Me.Textnum_mission.Text & "'"
connection.Open()
Dim myreader As SqlDataReader = command.ExecuteReader()
If myreader.HasRows = True And myreader.Read Then

Me.DataGridViewmod_miss.Enabled = True
Me.DataGridViewmod_miss.Visible = True
Me.Label_chauff.Visible = True
Me.Combochauf.Visible = True
Me.Labelmat_v.Visible = True
Me.ComboBoxmat.Visible = True
Me.Labeldate_depa.Visible = True
Me.Datedep.Visible = True
Me.Labeldate_ret.Visible = True
Me.Dateret.Visible = True
Me.Labelheur_dep.Visible = True
Me.Textheur_dep.Visible = True
Me.Labelheur_ret.Visible = True
Me.Textheur_ret.Visible = True
Me.Labelkm.Visible = True
Me.Textkm.Visible = True
Me.Labelrem.Visible = True
Me.Textrema.Visible = True
Me.Label_num_miss.Visible = True
Me.Labelnum_mis.Visible = True
Me.Labelnote.Visible = True
Me.Labeldep.Visible = True
Me.Combo_dep.Visible = True
Me.Labeldest.Visible = True
Me.Combodest.Visible = True
Me.Label_num_miss.Visible = True
Me.Textnum_mission.Visible = False
Me.Labelnum_miss.Visible = False
Me.Buttonverif_mission.Visible = False
Me.Buttonmodif_miss.Visible = True
Me.Buttoninsert.Visible = True
Me.Buttonquite2.Visible = False
Me.Buttonquit1.Visible = True
Me.Combochauf.Text = myreader(1)
Me.ComboBoxmat.Text = myreader(3)
Me.Datedep.Text = myreader(14)
Me.Textheur_dep.Text = myreader(13).ToString
Me.Labelnum_mis.Text = myreader(0)
Me.Textrema.Text = myreader(5)
Me.DataGridViewmod_miss.Rows.Clear()
myreader.Close()
' =================================================================
command2.CommandText = "SELECT * FROM [Ordre_Mission].[dbo].[mission],[Ordre_Mission].[dbo].[destination] WHERE mission.id_mission=destination.num_mission AND mission.id_mission ='" & Me.Textnum_mission.Text & "'"
Dim myreader2 As SqlDataReader = command2.ExecuteReader()
' If myreader2.HasRows = True And myreader2.Read Then
If myreader2.HasRows Then
While myreader2.Read
Me.DataGridViewmod_miss.Rows.Add(myreader2(15), myreader2(16), myreader2(17), myreader2(18), myreader2(0))
End While
End If


myreader2.Close()
connection.Close()
Else
MsgBox("Mission inexistant")
End If
connection.Close()
End If
connection.Close()
'End If
End Sub
Commenter la réponse de yg_be