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:
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:
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 ???
probleme de connection d'une application vb10 a une base Mysql
Code:
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 |