Remplir un datagridview à partir de résultat d'une requete sql
Résolu
info254
Messages postés
169
Statut
Membre
-
info254 Messages postés 169 Statut Membre -
info254 Messages postés 169 Statut Membre -
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 :

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

1 réponse
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
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 foismyreader.Read
avant le traitement.-
-
-
-
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
-
