Recharger le form1 apres insertion depuis form2
salut a tous, je veux savoir comment recharger un form dans la memoire, je m`explique, l`utilisateur ajoute un enregistrement(examen) apres remplir un formulaire et puis lorsque il veut verifier tout les examens qu`il a (ils sont affichés dans un ListView) il trouve pas le dernier qu`il vient d`ajouter. J`ai essayé de rafraichir le ListView mais pas marché:
Code:
ListView1.Refresh()
voila une portion du code dans mon premier form pour l`insertion:
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
| Try
'enregistrer l`image dans le dossier correspondant
System.IO.File.Copy(imageToCopy, newImage)
'enregistrer l`audio dans le dossier correspondant
System.IO.File.Copy(audioToCopy, newAudio)
'preparer les requetes
Dim sqlQRY1 As String = "INSERT INTO AUDIO Values ('" + nomAudio + "')"
Dim sqlQRY2 As String = "INSERT INTO [IMAGE] Values ('" + nomImage + "')"
Dim sqlQRY3 As String = "INSERT INTO [TEST](Int_Exa,Rep_Correctes,Nom_Aud,Nom_Img) Values ('" + nomExamen + "','" + repTest + "','" + nomAudio + "','" + nomImage + "')"
'ouvrir la connexion
myConnexion.Open()
MsgBox(nomImage)
'creation des commandes
Dim cmd1 As OleDbCommand = New OleDbCommand(sqlQRY1, myConnexion)
Dim cmd2 As OleDbCommand = New OleDbCommand(sqlQRY2, myConnexion)
Dim cmd3 As OleDbCommand = New OleDbCommand(sqlQRY3, myConnexion)
'exécution des requetes
cmd1.ExecuteNonQuery()
cmd2.ExecuteNonQuery()
cmd3.ExecuteNonQuery()
MsgBox("Test ajouté avec succés.", MsgBoxStyle.Information)
'fermer la connexion
myConnexion.Close()
TextBox1.Text = ""
TextBox2.Text = ""
CheckBox1.Checked = False
CheckBox2.Checked = False
CheckBox3.Checked = False
CheckBox4.Checked = False
PictureBox1.Image = Nothing
PictureBox1.BackgroundImage = Nothing
nbTest = nbTest - 1
Catch ex As Exception
MsgBox(ex.ToString)
Finally
myConnexion.Close()
End Try |
et pour mon 2eme form dans lequel l`utilisateur visualise les données dans ListView:
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
| ListView1.Refresh()
Me.MaximizeBox = False
ListView1.Items.Clear()
' Créer les entetes des colonnes du ListView.
ListView1.Columns.Add("Intitulé Examen", 170, HorizontalAlignment.Left)
ListView1.Columns.Add("Nombre de tests dans l`examen", 400, HorizontalAlignment.Left)
' Charger les données.
' Ouvrir la base de données.
myConnexion.Open()
' Préparer la requete.
Dim sqlQRY1 As String = "SELECT EXAMEN.Int_Exa, IIF(ISNULL(T.nbrTest), 0, T.nbrTest) AS nbrTest FROM EXAMEN LEFT JOIN (SELECT int_Exa, COUNT(*) as nbrTest FROM TEST GROUP BY int_Exa) AS T ON EXAMEN.Int_Exa = T.Int_Exa ORDER BY EXAMEN.Int_Exa"
'exécuter la requete
Try
Dim cmd1 As OleDbCommand = New OleDbCommand(sqlQRY1, myConnexion)
Dim data_reader As OleDbDataReader = cmd1.ExecuteReader()
Do While data_reader.Read()
Dim new_item As New ListViewItem(data_reader.Item("Int_Exa").ToString)
new_item.SubItems.Add(data_reader.Item("nbrTest").ToString)
ListView1.Items.Add(new_item)
Loop
data_reader.Close()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
myConnexion.Close()
End Try
' Fermer la connexion.
myConnexion.Close() |
comme j`ai dit, je cherche une ligne de code peut etre pour permettre a l`utilisateur de visualiser toutes les données sans besoin a fermer l`application et la réouvrir ;)