[VB.net]Procédure stockée SQL-Serveur 2005
Bonjour à tous ceux qui voudront bien m'aider (et en moindre mesure aux autres :lol: :P )
Comme ma présence doit le trahir, j'ai un petit problème que j'aimerai vous soumettre dans l'espoir que vous pouriez éclairer ma lanterne.:aie:
Je dévellope une procédure stockée sous VB.net pour une base de donné SQL Serveur 2005, et je me sers de Visual Studio Pro 2005 pour déployer mes procédures stockées sur le serveur SGBD.
Je vous soumet le code suivant qui a pour but de selectionner le contenue d'une table, et dans remplir une seconde avec les réponses générées par ma première requête.
Ca donne cela :
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
| Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports Microsoft.SqlServer.Server
Partial Public Class StoredProcedures
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub transfertResultat(ByVal unnocourse As Integer)
Using maConnexion As New SqlConnection("context connection = true")
maConnexion.Open()
Dim maCommande As SqlCommand = New SqlCommand("SELECT * FROM dbo.participer WHERE nocourse = " & unnocourse & " ORDER BY tpsrealise", maConnexion)
' SqlContext.Pipe.ExecuteAndSend(maCommande)
Dim reader As SqlDataReader = maCommande.ExecuteReader
Dim i As Integer
i = 1
While reader.Read()
Dim lacommande As SqlCommand = New SqlCommand("INSERT INTO dbo.classement (idcourse, idskieur, classement) VALUES (" & reader.GetValue(1).ToString & "," & reader.GetValue(0).ToString & "," & i & ")", maConnexion)
lacommande.ExecuteNonQuery()
i = i + 1
End While
reader.Close()
maConnexion.Close()
End Using
End Sub
End Class |
Cela me génère l'erreur suivante quand j'appel cette procédure sous SQL Serveur 2005 :
Code:
1 2 3 4 5 6 7 8 9 10
| Msg 6522, Niveau 16, État 1, Procédure transfertResultat, Ligne 0
Une erreur .NET Framework s'est produite au cours de l'exécution de la routine ou de la fonction d'agrégation définie par l'utilisateur 'transfertResultat' :
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
System.InvalidOperationException:
at System.Data.SqlClient.SqlInternalConnectionSmi.ValidateConnectionForExecute(SqlCommand command)
at System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command)
at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at SqlServerProject1.StoredProcedures.transfertResultat |
Je n'ai aucune idée d'où cela peut provenir.
Je vous remercie d'avance sur l'aide que vous pouriez me fournir aussi modeste soit elle. ;)