Bonjour,
Je reviens vers vous car je me prend la tête sur une requête depuis ce matin ...
Je fais une petite application pour formater les noms et prénoms d'une base Oracle, dans mon appli j'ai une listview de 3 colonnes (id, nom, prenom) chargée depuis une base Oracle, ce matin je me suis battu avec cette exception (http://www.developpez.net/forums/d12...contexte-com-/) mais j'ai réglé le problème.
Là le souci est autre, j'ai une procédure insertSGBD, qui boucle les items de ma listview pour mettre à jour la BDD, seulement voilà lorsque j'arrive à la ligne de l'executeNonQuery, l'appli freeze et on ne peut plus rien faire ...
J'ai essayé d'abord avec un DataAdapter.Update(DataSet), freeze, puis avec la requête en dur dans l'OleDbCommand, freeze, et enfin avec la requête paramétrée, freeze...
Je vois vraiment pas, je n'ai pas d'exception, message d'erreur, etc
En fenêtre de sortie j'ai des lignes et des lignes de Le thread '<Sans nom>' (0xf80) s'est arrêté avec le code 0 (0x0).
Auriez-vous une idée ?
Je vous mets la dernière méthode utilisée (requête paramétrée)
EDIT: J'ai testé avec seulement 6 personnes dans la listview et freeze quand même.
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
40
41
42
43
44
45
46
47
48 Public Sub updateSGBD() Dim updateCommand As OleDbCommand = Nothing Dim compteur As Integer = 0 Dim req As String Try con = New OleDbConnection("Provider=OraOLEDB.Oracle;Data Source=" & Db & ";User ID=" & user & ";Password=" & pwd & ";") con.Open() Using con For Each lstItem As ListViewItem In LstViewAvant.Items req = "UPDATE PERSONNE SET NOM='@nom', PRENOM='@prenom' WHERE NM_IDENTIF_PERSONNE='@id'" updateCommand = New OleDbCommand(req, con) With updateCommand.Parameters .Add(New OleDbParameter("@nom", OleDbType.BSTR)) .Add(New OleDbParameter("@prenom", OleDbType.BSTR)) .Add(New OleDbParameter("@id", OleDbType.Integer)) End With With updateCommand .Parameters("@nom").Value = formaterCaracteresSpeciaux(lstItem.SubItems(1).Text.ToUpper) .Parameters("@prenom").Value = formaterCaracteresSpeciaux(lstItem.SubItems(2).Text.ToUpper) .Parameters("@id").Value = lstItem.Text End With updateCommand.ExecuteNonQuery() compteur += 1 Debug.WriteLine(lstItem.Text & " ------ " & compteur.ToString) Next End Using Catch ex As System.Exception MsgBox(ex.ToString) Finally updateCommand.Dispose() End Try
Merci d'avance.
Partager