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é:
voila une portion du code dans mon premier form pour l`insertion:
Code : Sélectionner tout - Visualiser dans une fenêtre à part ListView1.Refresh()
et pour mon 2eme form dans lequel l`utilisateur visualise les données dans ListView:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Partager