Il y a déjà un DataReader ouvert associé à cette Connexion qui doit d'abord être fermés VB.NET
J'obtiens ce message d'erreur
"Il y a déjà un DataReader ouvert associé à cette Connexion
qui doit d'abord être fermés"
Merci de m'aider
Mon code est:
Public Sub update_qty(ByVal qry1 As String)
Dim dr As MySqlDataReader 'SQLiteDataReader
Dim comm As MySqlCommand 'SQLiteCommand
Try
comm = New MySqlCommand(qry1, conn)
dr = comm.ExecuteReader()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Do While dr.Read()
exe_query("call cargosys.paymentsAdd('" & var1 & "', " & dr("inNo") & ")")
Loop
dr.Close()
End Sub
Public Sub exe_query(ByVal qry As String) As String
Dim cmd As MySqlCommand
Try
cmd = New MySqlCommand(qry, conn)
cmd.ExecuteNonQuery()
Catch ex As MySqlException
MessageBox.Show(ex.ToString)
End Try
End Sub
Vous devez vous connecter pour publier un commentaire.
Votre problème, c'est que votre code d'ouvrir un
DataReader
et ensuite exécuter leSqlCommand
lorsque leDataReader
lireEssayer de changer cette ligne:
à:
Plus: DataReader CommandBehavior
Ou modifier votre chaîne de connexion pour activer MARS (Multiple Active Result set).
Ce paramètre permettra la récupération de l'avant plusieurs seule, en lecture seule sur la même connexion.
Par exemple :
Plus: MARS
MODIFIER
Depuis MARS mot-clé n'est pas pris en charge, essayez de changer votre code à ceci:
Au lieu de faire
DataReader.Read
->SqlCommand.ExecuteNonQuery
simultanément, ce code sera lu toutes les données d'abord, puis exécuterSqlCommand.ExecuteNonQuery
.