J'utilise VB2010 Express, j'ai un comprimé Mysql avec les champs suivants Ext, CostAssing et CostAct, je suis en train de mettre à jour une table Mysql du résultat obtenu dans un premier requête:Visual Basic 2010 et Mysql Nested requêtes
- Première requête Get Ext et CostAssing
- champ Mise à jour deuxième requête CostAct avec une valeur CostAssing
**
Imports MySql.Data.MySqlClient
Imports System
Imports System.IO
Public Class Form1
Public dbconn As New MySqlConnection
Public sql As String
Public sqlQuery As String
Public SQLcmd As MySqlCommand
Public dbcomm As MySqlCommand
Public dbread As MySqlDataReader
Dim Ext As String
Dim CostAssing As Integer
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
dbconn = New MySqlConnection("Data Source=localhost ; user id=root ; password=password ; database=calls")
'First Query Get Extension and CostAssing
Try
dbconn.Open()
sqlQuery = "SELECT Ext,CostAssing FROM estruc "
SQLcmd = New MySqlCommand(sqlQuery, dbconn)
dbread = SQLcmd.ExecuteReader
While dbread.Read()
Ext = dbread.Item("Ext")
CostAssing = dbread.Item("CostAssing")
MsgBox("Ext:" & Ext)
'Second Query Update Ext from CostAct to CostAssing
Try
sqlQuery = "UPDATE estruc SET CostAct = '" & "1000" & "' WHERE Ext = '" & Ext & "'"
SQLcmd = New MySqlCommand(sqlQuery, dbconn)
dbread = SQLcmd.ExecuteReader
Catch ex As Exception
MsgBox("Error 2 is :" & ex.Message)
End Try
End While
Catch ex As Exception
MsgBox("Error 1 is :" & ex.Message)
End Try
dbread.Close()
End Sub
End Class
**
La première course de requête ok, je reçois des champs Ext et CostAssing, mais quand la seconde requête essayer de mettre à jour de CostAct sur le terrain, j'obtiens l'erreur suivante (Rapporté par Catch ex As Exception MsgBox ("Erreur 2 est : "& ex.Message)):
" Erreur 2 est: Il existe déjà un lecteur de données ouvert associé à cette connexion qui doit être fermé en premier. "
PLease, des idées?