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

Windows Forms Discussion :

[VB.NET][Erreur]"L'opération n'est pas valide en raison de l'état actuel de l'objet"


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 43
    Points
    43
    Par défaut [VB.NET][Erreur]"L'opération n'est pas valide en raison de l'état actuel de l'objet"
    bonjour ,
    je travaille actuellement sur un projet en VB.net manipulant une base de données oracle, j'ai l'erreur suivante "L'opération n'est pas valide en raison de l'état actuel de l'objet" qui me rend la vie difficille à chaque fois que je veux extraire des données ou en insérer dans ma base.
    quelqu'un aurait une idée là dessus qui pourra me facilité la vie
    et merci .

  2. #2
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    Sans voir le bout de code qui pose problème, dur dur de t'aider

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    voici le bout du code qui pose le problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim req4 As String = "select DOT_ANNEE, DOT_MONTANT from DOTATION where DOT_ANNEE='" + Str(G_an_courant) + "'"
    conn.open()
    Dim rs4 As New OracleCommand(req4, conn)
            rs4.CommandType = CommandType.Text
            Dim dotation_courante As OracleDataReader = rs4.ExecuteReader()
            dotation_courante.Read()
     
            txt_dot_an_cr.Text = Str(dotation_courante.Item(0))
            txt_dot_mnt_cr.Text = Str(dotation_courante.Item(1))
    conn.close()

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 456
    Points : 1 776
    Points
    1 776
    Par défaut
    salut, c est quelle ligne qui plante exactement?
    je mettrais un application.doevents apres dotation_courante.Read()
    des fois que ton programme essaie de parcourir dotation_courante avant que le read ne se finisse

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    mon code plante exactement sur cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txt_dot_an_cr.Text = Str(dotation_courante.Item(0))
    et lorsque j'essaie de faire une insertion mon appli plante lorsque je veux valider ma transaction ( transaction.commit() )

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 456
    Points : 1 776
    Points
    1 776
    Par défaut
    et tu as essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Application.DoEvents()
    ?

  7. #7
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    Et avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    txt_dot_an_cr.Text = Ctype(dotation_courante.GetValue(0),String)
    ?

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 57
    Points : 57
    Points
    57
    Par défaut
    As-tu essayé avec un reader.GetString(0) par exemple ?
    ou vérifie le résultat d'un reader.Item(0).ToString() pour voir les propriétés de l'élément

  9. #9
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    les gars j'ai essayé vos solutions.. et ça me donne toujours la même erreur qui m'empoisonne l'existance aurez vous d'autre suggestions. je vous en serais hyper reconnaissant

  10. #10
    Membre habitué Avatar de Angath
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2004
    Messages : 140
    Points : 174
    Points
    174
    Par défaut
    Question bête : tu est sûr que ta requête te renvoi des résultats ?

    Si ton reader renvoi rien c'est normal que ca plante. Test l'existence de résultats avant d'essayer d'acceder aux données.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    dotation_courante.Read()
    If dotation_courante.Hasrows = true then
        txt_dot_an_cr.Text = Ctype(dotation_courante.GetValue(0),String)
        ....
        ....
    Else
        'c'est vide
    end if

  11. #11
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 71
    Points : 43
    Points
    43
    Par défaut
    vous avez raison, ma requête ne retourne aucun enregistrement c'est pour cela que ça plantait merci beaucoup, je n'aurais certainement pas decouvert l'origine de l'exception sans votre aide, merci mille fois

  12. #12
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2011
    Messages : 2
    Points : 3
    Points
    3
    Par défaut J'ai le même problème
    Bonjour tout le monde j'ai le même problème en créant une instance de OracleDataReader et ma requête retourne bien un résultat ! quelqu'un pourra il m'aider ?
    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
    public static String findlog(String lo)
            {
                String log = null;
                OracleConnection cnx = new OracleConnection();
                cnx.ConnectionString = @"DATA SOURCE=XE;PERSIST SECURITY INFO=True;USER ID=SOUSSI;PASSWORD=soussi";
                cnx.Open();
                OracleCommand cmd = new OracleCommand();
                cmd.CommandText = "SELECT Nom FROM Formateur WHERE Nom='" + lo + "'";
                OracleDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    if (lo.Equals(reader.GetValue(0).ToString()))
                    {
                        log = reader.GetValue(0).ToString();
                    }
                }
                return log;
            }
    le problème se trouve au niveau de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     OracleDataReader reader = cmd.ExecuteReader();

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/01/2012, 10h22
  2. Message d'erreur: Le cast spécifié n'est pas valide.
    Par giscard85 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 30/03/2011, 11h10
  3. SPPLUS - Erreur : Le sceau numerique n'est pas valide.
    Par Booyakha dans le forum E-Commerce
    Réponses: 0
    Dernier message: 16/11/2009, 10h20
  4. Erreur "Le cast spécifié n'est pas valide"
    Par GriffinK dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/04/2008, 10h46

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