Remplir un datagridview à partir de résultat d'une requete sql
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 :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| 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 |
Pièce jointe 496294
Remplir un datagridview à partir de résultat d'une requete sql
pbm résolu merci
voici le code exécutable :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
| 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 |