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 :

SVP aidez-moi, j'ai un problème avec les exceptions


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut SVP aidez-moi, j'ai un problème avec les exceptions
    Bonjour, je vous présente mon programme en .net :

    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     Public Sub Import_PortObl()
            Dim Rset As Integer
            Dim nada As String
     
            Rset = 0
     
            MyConnexion.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0        ;Data Source=H:\Antoine\CVaR\CreditVaR_PR.mdb"
            MyCommand = MyConnexion.CreateCommand()
            MyCommand1 = MyConnexion.CreateCommand() ' 
     
     
            'Nettoyage de la table INPUTS
            MyCommand.CommandText = "DELETE INPUTS.* FROM INPUTS;"
            MyAdapter = New OleDbDataAdapter(MyCommand)
            MyConnexion.Open()
            MyReader = MyCommand.ExecuteReader()
            MyReader.Close()
            MyConnexion.Close()
     
            ''Récupération des data non retraitées pour Mise à Jour de la table INPUTS
            MyCommand1.CommandText = " ma requête SQL"
     
     
            MyAdapter = New OleDbDataAdapter(MyCommand1)
            MyConnexion.Open()
            MyReader = MyCommand1.ExecuteReader()
     
            If MyReader.HasRows = False Then
                MsgBox("Requête Vide", MsgBoxStyle.Exclamation)
                Exit Sub
            End If
     
            Do While MyReader.Read()
                nada = MyReader.GetString(1)
                Rset = Rset + 1
            Loop
     
     
            Nb_Obligors = Rset
     
            ''Avec l'aide de la propriété Fill du DataAdapter charger le DataSet
            MyAdapter.Fill(MyDataSet, "INPUTS") 'PROBLEME ICI A VOIR
     
            'On met alors dans un Objet DataTable une table du DataSet
            MyDataTab = MyDataSet.Tables("INPUTS")
            MyDataRow = MyDataSet.Tables("INPUTS").NewRow()
     
     
            'On crée alors une nouvelle ligne pour chaque point de la distribution
            For Rset = 1 To Nb_Obligors
            ...
            Next Rset
     
            Dim MyCommandBuilder1 As New OleDbCommandBuilder(MyAdapter)
            'Mise à jour de la table INPUTS
            MyAdapter.Update(MyDataSet, "INPUTS")
            'On vide le dataset
            MyDataSet.Clear()
            MyConnexion.Close()
     
            End Sub
    Le problème est que, quand je fais le déboggage, une fenêtre apparaît sur la ligne où est écrite MyAdapter.Fill(MaDataSet, "INPUTS") et me dit le message suivant : "L'exception InvalidOperatorException n'a pas été gérée" "Un DataReader associé à cette commande est déjà ouvert. Il doit d'abord être fermé."

    je ne vois pas l'erreur, est-ce que quelqu'un peut m'aider ??? Merci d'avance

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ben tu utilises MyCommand1 une première fois avec ExecuteReader, et ensuite tu la réutilises (via MyAdapter) pour remplir une datatable... comme tu n'as pas fermé le DataReader entre les 2 => erreur
    Mais je ne vois pas trop à quoi sert le premier ExecuteReader, à part à compter le nombre de lignes... tu pourrais obtenir ce nombre autrement :
    - valeur de retour de MyAdapter.Fill
    - par la DataTable : MyDataSet.Tables["INPUTS"].Rows.Count
    ça t'éviterais d'exécuter la requête 2 fois...

  3. #3
    Candidat au Club
    Inscrit en
    Juillet 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci bien Tomlev, j'ai résolu ce problème en fin d'après-midi, effectivement tu as raison, le reader ne sert pas à grand chose ici

Discussions similaires

  1. Problème avec les exceptions
    Par UmutFB dans le forum VB.NET
    Réponses: 5
    Dernier message: 05/08/2008, 16h40
  2. Problème avec les Exceptions
    Par CORTEZ dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 23/05/2008, 10h06
  3. Problème avec les exceptions
    Par shenron666 dans le forum Code::Blocks
    Réponses: 3
    Dernier message: 11/10/2006, 12h53
  4. Problème avec les exceptions
    Par Mucho dans le forum wxWidgets
    Réponses: 3
    Dernier message: 04/10/2006, 17h10
  5. probléme avec les exceptions
    Par sofiane44 dans le forum Langage
    Réponses: 1
    Dernier message: 10/01/2006, 16h30

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