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 & Mysql : The connection is already open.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut vb.net & Mysql : The connection is already open.
    Bonjour, voila je cherche depuis hier soir une solution a mon problème sur internet mais rien n'y fait je vous explique :

    j'ai ma procédure 'gsm_affectation_list()' qui parcours la liste 'identite()' contenant un nom et prénom et en utilisant la fonction 'gsm_search_tel' elle affecte à une autre list 'identite_phone' le nom ainsi que le numéro de téléphone issue d'une base de donnée mysql extraite à l'aide de la fonction 'gsm_search_tel', pour faire plus simple voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Module GPRS
     
        Public identite As New ArrayList() 'on recupére juste l'identité des gens sur le ticket de départ
        Public identite_phone As New ArrayList() 'On crée une collection ArrayList qui contient lidentité des personnes concerné et leur tel
     
        Sub gsm_affectation_list()
            Dim i As Integer
            For i = 0 To identite.Count - 1
                identite_phone.Add(identite(i) & "=" & gsm_search_tel(identite(i)))         'ajoute à la list :: DUPONT JACQUE = 0303040506
            Next
        End Sub
     
    End Module
    par la même occasion voici ma fonction qui retourne le numéro de téléphone avec l'identité passé en paramètre :

    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
    '##################################################################
        '## cherche dans la table personnel le numéro de tel correspandant à un agent sur le ticket de depart
        '##################################################################
     
        Public Function gsm_search_tel(ByVal indicatifs As String) As String
            log("Cherche le numero de telephone du gars sur le ticket de depart avec sont indicatif")
            Try
                Dim Requete As String
                Dim sqlCommand As New MySqlCommand
                Dim myAdapter As New MySqlDataAdapter
                Dim myData As MySqlDataReader
     
                Requete = "SELECT portable FROM personnel WHERE indicatif = '" & indicatifs & "'"
                connection_Mysql.Open()
                sqlCommand.Connection = connection_Mysql
                sqlCommand.CommandText = Requete
                myAdapter.SelectCommand = sqlCommand
                myData = sqlCommand.ExecuteReader()
                myData.Read()
     
                Return myData.GetString("portable")
     
                myData.Close()
                connection_Mysql.Close()
     
            Catch ex As Exception
                les_try("fonction gsm_search_tel :: " & ex.Message) 'ecrit dans le fihier texte exception l'erreur
                Return "inconnu"
            End Try
     
        End Function
    Le soucis est le suivant :
    Lorsque j’insère un breakpoint dans ma procédure 'gsm_affectation_list()' je constate que seul la première itération de la boucle for récupère le numéro de téléphone des personnes enregistré dans ma list 'identite()' alors que les autres même si il sont en base de donnée sont affecté comme 'inconnu'
    Alors j'ai regardé du coté des exceptions sauvegardé dans un fichier texte et voici ce que j'ai pour ma fonction 'gsm_search_tel':
    08/08/2014 11:31:47 fonction gsm_search_tel :: The connection is already open.
    Pourtant je ferme la connection mysql à la fin de la fonction !!! je ne comprend pas ou est le problème ???

  2. #2
    Membre Expert Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Bonjour,

    2 erreurs de débutants : (dans le code en commentaires)

    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
    Try
                Dim Requete As String
                Dim sqlCommand As New MySqlCommand
                Dim myAdapter As New MySqlDataAdapter
                Dim myData As MySqlDataReader
     
                Requete = "SELECT portable FROM personnel WHERE indicatif = '" & indicatifs & "'"
                connection_Mysql.Open()
                sqlCommand.Connection = connection_Mysql
                sqlCommand.CommandText = Requete
                myAdapter.SelectCommand = sqlCommand
                myData = sqlCommand.ExecuteReader()
                myData.Read()
     
                '1ere erreur : Au Return, le code s'arrête... Donc il n'ira pas plus loin
                Return myData.GetString("portable")
     
                'Donc ceci à placé avant le return
                myData.Close()
                connection_Mysql.Close()
     
            Catch ex As Exception
                '2eme erreur, si une exception est levé, tu ne fermes pas ta connection... Donc les deux lignes au dessus, à copier également ici
                les_try("fonction gsm_search_tel :: " & ex.Message) 'ecrit dans le fihier texte exception l'erreur
                Return "inconnu"
            End Try
    J'ajouterai, que pour éviter de perdre du temps sur une autre erreur, il convient de tester : If MyData.Connection.state = open then Close (code imagé bien sur)

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Merci effectivement de grosse erreurs bête !
    Ça fonctionne merci encore

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Sinon 2 conseils
    Utilise les clauses using, ainsi quel que soit le problème, les ressources seront libérées automatiquement.
    Utilise les requêtes paramètrées. Voir Tuto ou Faq.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    merci pour les conseils je vais lire les liens. merci

  6. #6
    Candidat au Club
    Femme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2014
    Messages : 2
    Par défaut probleme de connection d'une application vb10 a une base Mysql
    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
    Imports MySql.Data.MySqlClient
    Public Class Form1
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            TestConnection()
        End Sub
        Public Sub TestConnection()
     
            Dim conn As MySqlConnection
            conn = New MySqlConnection()
            conn.ConnectionString = "server=localhost; user id=root; password=; database=master_base"
     
            Try
                conn.Open()
            Catch myerror As MySqlException
                MsgBox("error connecting to database")
            End Try
     
     
        End Sub
    End Class

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

Discussions similaires

  1. Se connecter sur zloche.net avec MySQL
    Par alex113 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 22
    Dernier message: 25/08/2011, 08h05
  2. Réponses: 6
    Dernier message: 27/04/2009, 13h58
  3. Réponses: 9
    Dernier message: 27/04/2009, 13h58
  4. Réponses: 2
    Dernier message: 06/04/2009, 09h16
  5. [MYSQL]VS 2005 DataReader already open
    Par jesuis dans le forum C#
    Réponses: 6
    Dernier message: 04/01/2008, 15h25

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