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 :

[VB.Net] Quelle est l'Exception pour un doublon dans un index ?


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    Quel est le nom de l'exception pour "doublon dans un index"

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Tout depend quel(le) type/méthode celà concerne, pour l'ajout d'un objet dans un HashTable par exemple se sera un ArgumentException ... Donnes nous la ligne de code concernée, tu n'es peut être pas dans le bon sous-forum
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    Un doublon dans un index lorsque je veux ajouter un enregistrement dans un table MS Access (base de données). Le champ en question est indexé (Oui, sans doublons). Alors, lorsque l'on essaie d'enregistrer un enregistrement dans ce champ (même valeur qu'un autre champ), il génère une erreur comme "Doublon dans un index......". J'aimerais récupérer cette erreur pour avertir l'utilisateur pour qu'il puisse corriger et enregistrer à nouveau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    [Try]
     
    traitement.....
     
    [Catch objException As Exception]
    remplacer "Exception" par le mot qui récupérerait cette exception ou le code si possible.

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Eh bien cher ami, tu es sur la bonne piste fait l'essai avec ce bloc try/catch en provoquant l'erreur souhaité et affiche objException.ToString()
    le message te dira de quelle exception typée il s'agit ; sinon en mode debug tu peux suivre dans objException les InnerExceptions qu'il détient
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    L'exception qu'il me donne est :

    "System.Data.OleDb.OleDbException"

    C'est bien vaste comme exception! Cela peut-être plusieurs erreurs provenant des tables de MS Access. Qu'est ce qui me dit que c'est bien "Doublon dans un index...". Il faut que je sois vraiment très précis!

    Pour ce qui est de "InnerException", j'essaie de m,en servir en mode "Debug" et cela ne fonctionne pas, il ferme mon formulaire tout simplement et aucun message n,apparaît à l'écran...bizarre!!!

    Ex.: Catch objException As Exception
    MessageBox.Show(objException.InnerException.Message)
    MessageBox.Show(objException.InnerException.ToString)

    et rien ne fonctionne...

    merci de votre aide!

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Attention il te faut mettre une conditionnelle qui s'assure de la présence d'une InnerException, maintenant pour ce qui est de la spécificité il te faudrait peut miser sur une recupération d'un HResult pour faitre une identification plus précise, à moins que la simplecomparaison de la chaine de caractères du message soit suffisante
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    J'aimerais avoir plus de précision sur "mettre une conditionnelle", "récupération d'un HResult".

    Cela ne fais pas longtemps que je travaille en Vb.Net surtout pour ce qui est des exceptions!

    Et si on parlait aussi de "ContraintException" ????

    Merci de ton aide!

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Bon ne te disperses pas stp car tu sais déjà que l'exception générique qui sera systématiquement levée côté serveur est bien OleDbException donc consultes ce lien et creuse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    J'aimerais avoir plus de précision sur "mettre une conditionnelle"
    Euh là c'est pas propre à VB.Net c'est une notion de programmation de base mais laisses tomber et orientes toi directement sur la lecture de propriété ErrorCode de objException , tu peux verifer si le HResult (simple code de type Integer ) retourné est toujours le même ou s'il varie pour la même erreur que tu provoques, dans le premier cas de figure ce serait déjà une bonne piste de résolution non
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    Comment obtenir le HResult, je ne sais pas comment procéder!
    Je n'ai aucune idée comment procéder!
    Je suis complètement perdu!
    Je vais voir sur le lien de "ErrorCode" que j'avais déjà trouvé, mais je ne sais pas comment procéder pour arriver à gérer l'exception que je désire!

    Je manque beaucoup d'information à ce sujet!!!

    Un exemple serait le bienvenue pour avoir le "HResult"!

    Merci!

  10. #10
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    ok
    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
    Imports System
    Imports System System.Data
    Imports System System.Data.OleDb
    Imports System.Text
    '...
     
     
      ' dans ta méthode
       Dim sb As New StringBuilder(String.Empty)
       Try
         ' le code à effectuer et qui contient les tests
         ' qui provoqueront les exceptions souhaitées
       Catch objException As OleDbException
          sb.Append(objException.ToString())
          sb.Append(Environment.NewLine)
          sb.Append("HRESULT = ")
          sb.Append(objException.ErrorCode.ToString())
          MessageBox.Show(sb.ToString())
       Finally
          'le code qui doit être absolument effectué :
          ' _ liberation de certaines ressources
          ' _ fermeture de la connection
       End Try
      'fin de la methode
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    Cela fonctionne très bien.
    Est-ce que le "HResult" va toujours me retourner le même numéro pour l'erreur "doublon dans un index".
    D'après msdn, HREsult = valeur numérique codée qui est assignée à une exception spécifique.
    HRESULT est une valeur 32 bits divisée en trois champs : un code de gravité, un code de service et un code d'erreur. Le code de gravité indique si la valeur de retour représente une information, un avertissement ou une erreur. Le code de service identifie la zone du système responsable de l'erreur. Le code d'erreur est un numéro unique assigné pour représenter l'exception.

    Si oui, cela serait formidable!

    Je vais faire différent test pour vérifier!

    Un gros merci!

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 31
    Points : 18
    Points
    18
    Par défaut [VB.Net] Quelle est l'Exception pour un doublon dans un index ?
    Je lis le HResult de la manière suivante pour obtenir un code à 10 caractères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    Catch objException As System.Data.OleDb.OleDbException
      If objException.ErrorCode = -2147467259 Then
        message.....
      End If
    Catch objException As Exception
      autre gestion d'erreur....
    End Try
    mais cela ne fonctionne (.ErrorCode) que pour "OleDbException" et non pour "Exception"

    J'ai fait différent test d'erreur sur les bases de données et les no. sont différents. J'ai fait des tests d'erreur ("doublon dans un index") dans différents formulaires et tables Access, et sur un autre ordinateur et j'obtient le même code d'erreur ("ErrorCode").

    Je pense que j'ai trouvé ce que je recherchais. Avoir un code unique pour "trapper" une erreur particulière.

    J'espère de ne pas me tromper et que je suis dans la bonne voie.

    Merci beaucoup de ton aide!!!

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/06/2008, 13h01
  2. Réponses: 7
    Dernier message: 20/06/2006, 15h40
  3. Réponses: 1
    Dernier message: 27/04/2006, 20h49
  4. [VSTO][VB.NET] Quelle est la référence Word ?
    Par digger dans le forum VB.NET
    Réponses: 1
    Dernier message: 10/01/2006, 16h59

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