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

ASP.NET Discussion :

Plusieurs Connexion table access


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut Plusieurs Connexion table access
    Bonjour à tous,

    J'espere que je poste au bon endroit...

    Je réalise une application en vb dotnet et je désire me connecter simultanément à la même base.
    Je m'explique , j'ai trois boucle Do while dr.read.....loop imbriqué. Malheuresement on me dit lorsque j'arrive au deuxieme datareader que
    Un DataReader associé à cette connexion est déjà ouvert, il doit être tout d'abord fermé.
    Voici mon code :
    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
     
        Dim MyConnection As New System.Data.OleDb.OleDbConnection
        Dim MyConnection2 As New System.Data.OleDb.OleDbConnection
        Dim MyConnection3 As New System.Data.OleDb.OleDbConnection
     
    MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source='C:\Documents and Settings\bdd.mdb'"
            MyConnection.Open()
            ' // déclaration des variables \\ 
            Dim MyCommand As OleDb.OleDbCommand
     
            Dim dr As OleDb.OleDbDataReader
            Dim dr2 As OleDb.OleDbDataReader
            Dim dr3 As OleDb.OleDbDataReader
     
            Dim requete As String = "....."
     
            Dim nfbi As String 
     
             MyCommand = New OleDb.OleDbCommand(requete, MyConnection)
            dr = MyCommand.ExecuteReader()
     
            Do While dr.Read
     
                nfbi = dr.GetString(2)
     
     
                MyConnection2.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source='C:\Documents and Settings\bdd2.mdb'"
                MyConnection2.Open()
                Dim MyCommand2 As OleDb.OleDbCommand
     
                Dim requete2 As String = "......."
                MyCommand2 = New OleDb.OleDbCommand(requete2, MyConnection2)
                dr2 = MyCommand2.ExecuteReader()
                Do While dr2.Read
                    nfbi2 = dr2.GetString(1)
                    lfbi2 = dr2.GetString(2)
     
                          Dim MyCommand3 As OleDb.OleDbCommand
                            Dim requete3 As String = "..."
                            MyCommand3 = New OleDb.OleDbCommand(requete3, MyConnection)
                            MyCommand3.ExecuteReader()
                        End If
                    End If
                Loop
                MyConnection2.Close()
     
     
            Loop
            MyConnection.Close()
            dr.Close()

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    391
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Décembre 2005
    Messages : 391
    Par défaut
    tu utilise toujours la meme connexion

    si tu veux reelement en utiliser plusieurs fait le par tableau

    mais pourquoi veux tu utiliser plusieurs connexion?
    une seule suffit

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    Parce que si j'utilise qu'une seule connexion, j'obtient toujours le même
    message d'erreur
    Un DataReader associé à cette connexion est déjà ouvert, il doit être tout d'abord fermé.
    Sinon comment puis je faire par tableau? la ou ca plante , il s'agit d'une insertion? Comment est-il possible de stocker mes données dans un datatable??

    Merci

  4. #4
    Membre confirmé Avatar de Azephel
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Par défaut
    Salut !
    En fait si tu as ce message, c'est pas aprce que tu utilise qu'une seule connexion, c'est parce que tu essaye d'utiliser un datareader alors qu'un autre est ouvert.

    Essaye quelque chose dans ce genre :
    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
     Dim MyConnection As New System.Data.OleDb.OleDbConnection
    MyConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data source='C:\Documents and Settings\bdd.mdb'"
            MyConnection.Open()
            ' // déclaration des variables \\ 
            Dim MyCommand As OleDb.OleDbCommand
     
            Dim dr As OleDb.OleDbDataReader
            Dim dr2 As OleDb.OleDbDataReader
            Dim dr3 As OleDb.OleDbDataReader
     
            Dim requete As String = "....."
     
            Dim nfbi As String 
     
             MyCommand = New OleDb.OleDbCommand(requete, MyConnection)
            dr = MyCommand.ExecuteReader()
     
            Do While dr.Read
     
                nfbi = dr.GetString(2)
     dr.Close()
     
                Dim requete2 As String = "......."
                MyCommand = New OleDb.OleDbCommand(requete2, MyConnection)
                dr2 = MyCommand.ExecuteReader()
                Do While dr2.Read
                    nfbi2 = dr2.GetString(1)
                    lfbi2 = dr2.GetString(2)
     dr2.Close()
                            Dim requete3 As String = "..."
                            MyCommand = New OleDb.OleDbCommand(requete3, MyConnection)
                            dr3 = MyCommand3.ExecuteReader()
    'etc...
                        End If
                    End If
                Loop
     
            Loop
    dr3.Close()
            MyConnection.Close()
    A chaque fois que tu veux utiliser un datareader, ferme le précédent, comme ça tu sera sûr de ne pas (trop ?) avoir de problème ^^

    Aller, courage !

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    Ca me faisait également une erreur.

    J'ai recopié les données dans une datatable que je vais essayer d'insérer dans ma table access plus tard. Je ne sais pas si cela est possible..;

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/04/2011, 11h13
  2. pb connexion à une table access
    Par coollehavre2 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 01/11/2007, 17h16
  3. Comparer 2 ou plusieurs champs dans 1 table access
    Par stefan13 dans le forum VBA Access
    Réponses: 9
    Dernier message: 30/07/2007, 13h42
  4. Réponses: 5
    Dernier message: 27/12/2006, 16h56
  5. Découper une table access en plusieurs table automatiquement
    Par monsieuryaya2 dans le forum Access
    Réponses: 2
    Dernier message: 29/11/2005, 12h37

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