IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Freeze sur OleDbCommand.ExecuteNonQuery()


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut Freeze sur OleDbCommand.ExecuteNonQuery()
    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.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Pourquoi est-ce que tu n'utilises pas le provider spécifique à Oracle : ODP.NET ?

    Essaie avec celui-ci et dis nous si tu as toujours le même problème.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    On était sur l'OracleClient (system.data.oracleclient.dll) puis on a décidé de migrer notre bibliothèque d'entreprise vers le framework 4.0 et on a vu que le provider OracleClient était abandonné par Oracle, on a vu également qu'on pouvait migrer vers ODP mais mes collègues étant assez fâchés avec Oracle du fait de l'abandon du provider, on s'est tourné vers Windows avec l'OleDb ...

    Je vais dissocier mon appli de la bibliothèque et tenter avec ODP, mais à terme l'appli sera intégrée à la bibliothèque donc je devrais trouver une autre solution quand même...

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    Sinon regarde si tu n'as pas un problème de multithreading, ADO.NET n'aime pas trop ça... Essaie d'ouvrir une nouvelle connexion dans chacun des threads (au cas où tu utilises une seule connexion pour tous tes threads).
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Nope, pas de multi-threading, mais j'ai "résolu" mon problème.
    Le post de 105rn2 sur les exceptions de 1ére chance m'a rappelé que ce matin j'avais modifié les réglages des exceptions à lever ...
    J'ai tout réinitialisé et c'est bon maintenant.
    ( Et donc pour Oracle les suffixes de paramètres sont ":" et non "@" ... )

    Merci de t'être intéressé à mon problème !

  6. #6
    Membre actif

    Homme Profil pro
    Bricoleur ( débutant )
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Bricoleur ( débutant )
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Par défaut
    Citation Envoyé par _Ez3kiel Voir le message
    Nope, pas de multi-threading, mais j'ai "résolu" mon problème.
    Le post de 105rn2 sur les exceptions de 1ére chance m'a rappelé que ce matin j'avais modifié les réglages des exceptions à lever ...
    J'ai tout réinitialisé et c'est bon maintenant.
    ( Et donc pour Oracle les suffixes de paramètres sont ":" et non "@" ... )

    Merci de t'être intéressé à mon problème !
    Bravo _Ez3kiel, comme je te dit mon maitre vous êtes le

    Bonne continuation à vous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème sur OleDbCommand
    Par huggy49 dans le forum ADO.NET
    Réponses: 10
    Dernier message: 24/03/2011, 15h31
  2. Freeze sur Point d'arret
    Par sivaller dans le forum Visual C++
    Réponses: 3
    Dernier message: 19/02/2011, 13h26
  3. [Carte graphique] Freeze sur jeux uniquement
    Par flo28090 dans le forum Composants
    Réponses: 5
    Dernier message: 29/10/2010, 16h58
  4. Freeze sur appuis clavier inexplicable
    Par Contrec dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 03/11/2009, 16h15
  5. Driver nvidia freeze sur kernel 2.6.16 sous Fedora core 5
    Par Invité4 dans le forum Matériel
    Réponses: 1
    Dernier message: 03/04/2006, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo