Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing
alors que lorsque je l'execute dans l'analyseur de requete de sql server il
me retroune la bonne valeur !!!!
Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
Public Function fcVariable(ByVal myVariable As String) As String
Dim mConn As New SqlConnection(strConnectSession)
mConn.Open()
Dim mCmd As New SqlCommand("sp_Variable", mConn)
mCmd.CommandType = CommandType.StoredProcedure
Dim ParamfcVariable As SqlParameter =
mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int)
ParamfcVariable.Direction = ParameterDirection.ReturnValue
ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR",
SqlDbType.VarChar, 255)
ParamfcVariable.Direction = ParameterDirection.InputOutput
ParamfcVariable.Value = "" <======== le problème doit provenir
de cette ligne
Try
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
fcVariable = mDr("VSES_VALEUR")
Catch ex As Exception
'Affichage du détail de l'erreur
strMessage = "<b>Message d'erreur : </b>" & ex.Message &
"<br><br>"
strMessage &= "<b>Source de l'erreur : </b>" & ex.Source &
"<br><br>"
strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace
& "<br><br>"
Finally
mConn.Close()
End Try
End Function
A mon avis le problème doit provenir de mon dernier parametre que je passe a
ma procedure stockée qui a une direction input output et dont la valeur est
"" (vide)
Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre
un chaine vide ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Joël Descombes
Hé hé... Salut Thibault ! Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. En ce qui concerne ton problème, il manque un traitement essentiel avant de pouvoir lire quoi que ce soit : Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment remontées, et donc t'as Nothing.
Joël Descombes MCAD.Net
"Thibault" a écrit :
Bonjour à tous
Tout d'abord une très bonne année à vous tous.
Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing alors que lorsque je l'execute dans l'analyseur de requete de sql server il me retroune la bonne valeur !!!!
Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
Public Function fcVariable(ByVal myVariable As String) As String Dim mConn As New SqlConnection(strConnectSession) mConn.Open()
Dim mCmd As New SqlCommand("sp_Variable", mConn) mCmd.CommandType = CommandType.StoredProcedure
Dim ParamfcVariable As SqlParameter = mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) ParamfcVariable.Direction = ParameterDirection.ReturnValue
ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", SqlDbType.VarChar, 255) ParamfcVariable.Direction = ParameterDirection.InputOutput ParamfcVariable.Value = "" <======== le problème doit provenir de cette ligne
Try
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
fcVariable = mDr("VSES_VALEUR")
Catch ex As Exception
'Affichage du détail de l'erreur strMessage = "<b>Message d'erreur : </b>" & ex.Message & "<br><br>" strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & "<br><br>" strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace & "<br><br>"
Finally
mConn.Close()
End Try
End Function
A mon avis le problème doit provenir de mon dernier parametre que je passe a ma procedure stockée qui a une direction input output et dont la valeur est "" (vide)
Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre un chaine vide ?
Cordialement,
Hé hé... Salut Thibault !
Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer.
En ce qui concerne ton problème, il manque un traitement essentiel avant de
pouvoir lire quoi que ce soit :
Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true
avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment
remontées, et donc t'as Nothing.
Joël Descombes
MCAD.Net
"Thibault" a écrit :
Bonjour à tous
Tout d'abord une très bonne année à vous tous.
Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing
alors que lorsque je l'execute dans l'analyseur de requete de sql server il
me retroune la bonne valeur !!!!
Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
Public Function fcVariable(ByVal myVariable As String) As String
Dim mConn As New SqlConnection(strConnectSession)
mConn.Open()
Dim mCmd As New SqlCommand("sp_Variable", mConn)
mCmd.CommandType = CommandType.StoredProcedure
Dim ParamfcVariable As SqlParameter =
mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int)
ParamfcVariable.Direction = ParameterDirection.ReturnValue
ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR",
SqlDbType.VarChar, 255)
ParamfcVariable.Direction = ParameterDirection.InputOutput
ParamfcVariable.Value = "" <======== le problème doit provenir
de cette ligne
Try
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
fcVariable = mDr("VSES_VALEUR")
Catch ex As Exception
'Affichage du détail de l'erreur
strMessage = "<b>Message d'erreur : </b>" & ex.Message &
"<br><br>"
strMessage &= "<b>Source de l'erreur : </b>" & ex.Source &
"<br><br>"
strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace
& "<br><br>"
Finally
mConn.Close()
End Try
End Function
A mon avis le problème doit provenir de mon dernier parametre que je passe a
ma procedure stockée qui a une direction input output et dont la valeur est
"" (vide)
Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre
un chaine vide ?
Hé hé... Salut Thibault ! Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. En ce qui concerne ton problème, il manque un traitement essentiel avant de pouvoir lire quoi que ce soit : Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment remontées, et donc t'as Nothing.
Joël Descombes MCAD.Net
"Thibault" a écrit :
Bonjour à tous
Tout d'abord une très bonne année à vous tous.
Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing alors que lorsque je l'execute dans l'analyseur de requete de sql server il me retroune la bonne valeur !!!!
Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
Public Function fcVariable(ByVal myVariable As String) As String Dim mConn As New SqlConnection(strConnectSession) mConn.Open()
Dim mCmd As New SqlCommand("sp_Variable", mConn) mCmd.CommandType = CommandType.StoredProcedure
Dim ParamfcVariable As SqlParameter = mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) ParamfcVariable.Direction = ParameterDirection.ReturnValue
ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", SqlDbType.VarChar, 255) ParamfcVariable.Direction = ParameterDirection.InputOutput ParamfcVariable.Value = "" <======== le problème doit provenir de cette ligne
Try
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
fcVariable = mDr("VSES_VALEUR")
Catch ex As Exception
'Affichage du détail de l'erreur strMessage = "<b>Message d'erreur : </b>" & ex.Message & "<br><br>" strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & "<br><br>" strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace & "<br><br>"
Finally
mConn.Close()
End Try
End Function
A mon avis le problème doit provenir de mon dernier parametre que je passe a ma procedure stockée qui a une direction input output et dont la valeur est "" (vide)
Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre un chaine vide ?
Cordialement,
Thibault
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then fcVariable = mDr("VSES_VALEUR") end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
Hé hé... Salut Thibault ! Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. En ce qui concerne ton problème, il manque un traitement essentiel avant de pouvoir lire quoi que ce soit : Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment remontées, et donc t'as Nothing.
Joël Descombes MCAD.Net
"Thibault" a écrit :
> Bonjour à tous > > Tout d'abord une très bonne année à vous tous. > > Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing > alors que lorsque je l'execute dans l'analyseur de requete de sql server il > me retroune la bonne valeur !!!! > > Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème : > > Public Function fcVariable(ByVal myVariable As String) As String > Dim mConn As New SqlConnection(strConnectSession) > mConn.Open() > > Dim mCmd As New SqlCommand("sp_Variable", mConn) > mCmd.CommandType = CommandType.StoredProcedure > > Dim ParamfcVariable As SqlParameter = > mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) > ParamfcVariable.Direction = ParameterDirection.ReturnValue > > ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int) > ParamfcVariable.Direction = ParameterDirection.Input > ParamfcVariable.Value = _SessionId > > ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM", > SqlDbType.VarChar, 50) > ParamfcVariable.Direction = ParameterDirection.Input > ParamfcVariable.Value = myVariable > > ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", > SqlDbType.VarChar, 255) > ParamfcVariable.Direction = ParameterDirection.InputOutput > ParamfcVariable.Value = "" <======== le problème doit provenir > de cette ligne > > Try > > Dim mDr As SqlDataReader = mCmd.ExecuteReader() > > fcVariable = mDr("VSES_VALEUR") > > Catch ex As Exception > > 'Affichage du détail de l'erreur > strMessage = "<b>Message d'erreur : </b>" & ex.Message & > "<br><br>" > strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & > "<br><br>" > strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace > & "<br><br>" > > Finally > > mConn.Close() > > End Try > > End Function > > > A mon avis le problème doit provenir de mon dernier parametre que je passe a > ma procedure stockée qui a une direction input output et dont la valeur est > "" (vide) > > Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre > un chaine vide ? > > Cordialement, >
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de
rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then
fcVariable = mDr("VSES_VALEUR")
end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
Hé hé... Salut Thibault !
Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer.
En ce qui concerne ton problème, il manque un traitement essentiel avant de
pouvoir lire quoi que ce soit :
Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true
avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment
remontées, et donc t'as Nothing.
Joël Descombes
MCAD.Net
"Thibault" a écrit :
> Bonjour à tous
>
> Tout d'abord une très bonne année à vous tous.
>
> Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing
> alors que lorsque je l'execute dans l'analyseur de requete de sql server il
> me retroune la bonne valeur !!!!
>
> Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
>
> Public Function fcVariable(ByVal myVariable As String) As String
> Dim mConn As New SqlConnection(strConnectSession)
> mConn.Open()
>
> Dim mCmd As New SqlCommand("sp_Variable", mConn)
> mCmd.CommandType = CommandType.StoredProcedure
>
> Dim ParamfcVariable As SqlParameter =
> mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int)
> ParamfcVariable.Direction = ParameterDirection.ReturnValue
>
> ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int)
> ParamfcVariable.Direction = ParameterDirection.Input
> ParamfcVariable.Value = _SessionId
>
> ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM",
> SqlDbType.VarChar, 50)
> ParamfcVariable.Direction = ParameterDirection.Input
> ParamfcVariable.Value = myVariable
>
> ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR",
> SqlDbType.VarChar, 255)
> ParamfcVariable.Direction = ParameterDirection.InputOutput
> ParamfcVariable.Value = "" <======== le problème doit provenir
> de cette ligne
>
> Try
>
> Dim mDr As SqlDataReader = mCmd.ExecuteReader()
>
> fcVariable = mDr("VSES_VALEUR")
>
> Catch ex As Exception
>
> 'Affichage du détail de l'erreur
> strMessage = "<b>Message d'erreur : </b>" & ex.Message &
> "<br><br>"
> strMessage &= "<b>Source de l'erreur : </b>" & ex.Source &
> "<br><br>"
> strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace
> & "<br><br>"
>
> Finally
>
> mConn.Close()
>
> End Try
>
> End Function
>
>
> A mon avis le problème doit provenir de mon dernier parametre que je passe a
> ma procedure stockée qui a une direction input output et dont la valeur est
> "" (vide)
>
> Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre
> un chaine vide ?
>
> Cordialement,
>
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then fcVariable = mDr("VSES_VALEUR") end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
Hé hé... Salut Thibault ! Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. En ce qui concerne ton problème, il manque un traitement essentiel avant de pouvoir lire quoi que ce soit : Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment remontées, et donc t'as Nothing.
Joël Descombes MCAD.Net
"Thibault" a écrit :
> Bonjour à tous > > Tout d'abord une très bonne année à vous tous. > > Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing > alors que lorsque je l'execute dans l'analyseur de requete de sql server il > me retroune la bonne valeur !!!! > > Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème : > > Public Function fcVariable(ByVal myVariable As String) As String > Dim mConn As New SqlConnection(strConnectSession) > mConn.Open() > > Dim mCmd As New SqlCommand("sp_Variable", mConn) > mCmd.CommandType = CommandType.StoredProcedure > > Dim ParamfcVariable As SqlParameter = > mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) > ParamfcVariable.Direction = ParameterDirection.ReturnValue > > ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int) > ParamfcVariable.Direction = ParameterDirection.Input > ParamfcVariable.Value = _SessionId > > ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM", > SqlDbType.VarChar, 50) > ParamfcVariable.Direction = ParameterDirection.Input > ParamfcVariable.Value = myVariable > > ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", > SqlDbType.VarChar, 255) > ParamfcVariable.Direction = ParameterDirection.InputOutput > ParamfcVariable.Value = "" <======== le problème doit provenir > de cette ligne > > Try > > Dim mDr As SqlDataReader = mCmd.ExecuteReader() > > fcVariable = mDr("VSES_VALEUR") > > Catch ex As Exception > > 'Affichage du détail de l'erreur > strMessage = "<b>Message d'erreur : </b>" & ex.Message & > "<br><br>" > strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & > "<br><br>" > strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace > & "<br><br>" > > Finally > > mConn.Close() > > End Try > > End Function > > > A mon avis le problème doit provenir de mon dernier parametre que je passe a > ma procedure stockée qui a une direction input output et dont la valeur est > "" (vide) > > Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre > un chaine vide ? > > Cordialement, >
Joël Descombes
@VSES_VALEUR est un parametre de procédure, et n'est pas contenu dans un recordset. Pour récupérer sa valeur tu fais : mCmd.Parameters("@VSES_VALEUR").Value
Joël Descombes MCAD.Net
"Thibault" a écrit :
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then fcVariable = mDr("VSES_VALEUR") end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
> Hé hé... Salut Thibault ! > Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. > En ce qui concerne ton problème, il manque un traitement essentiel avant de > pouvoir lire quoi que ce soit : > Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true > avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment > remontées, et donc t'as Nothing. > > Joël Descombes > MCAD.Net > > "Thibault" a écrit : > > > Bonjour à tous > > > > Tout d'abord une très bonne année à vous tous. > > > > Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing > > alors que lorsque je l'execute dans l'analyseur de requete de sql server il > > me retroune la bonne valeur !!!! > > > > Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème : > > > > Public Function fcVariable(ByVal myVariable As String) As String > > Dim mConn As New SqlConnection(strConnectSession) > > mConn.Open() > > > > Dim mCmd As New SqlCommand("sp_Variable", mConn) > > mCmd.CommandType = CommandType.StoredProcedure > > > > Dim ParamfcVariable As SqlParameter = > > mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) > > ParamfcVariable.Direction = ParameterDirection.ReturnValue > > > > ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int) > > ParamfcVariable.Direction = ParameterDirection.Input > > ParamfcVariable.Value = _SessionId > > > > ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM", > > SqlDbType.VarChar, 50) > > ParamfcVariable.Direction = ParameterDirection.Input > > ParamfcVariable.Value = myVariable > > > > ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", > > SqlDbType.VarChar, 255) > > ParamfcVariable.Direction = ParameterDirection.InputOutput > > ParamfcVariable.Value = "" <======== le problème doit provenir > > de cette ligne > > > > Try > > > > Dim mDr As SqlDataReader = mCmd.ExecuteReader() > > > > fcVariable = mDr("VSES_VALEUR") > > > > Catch ex As Exception > > > > 'Affichage du détail de l'erreur > > strMessage = "<b>Message d'erreur : </b>" & ex.Message & > > "<br><br>" > > strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & > > "<br><br>" > > strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace > > & "<br><br>" > > > > Finally > > > > mConn.Close() > > > > End Try > > > > End Function > > > > > > A mon avis le problème doit provenir de mon dernier parametre que je passe a > > ma procedure stockée qui a une direction input output et dont la valeur est > > "" (vide) > > > > Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre > > un chaine vide ? > > > > Cordialement, > >
@VSES_VALEUR est un parametre de procédure, et n'est pas contenu dans un
recordset. Pour récupérer sa valeur tu fais :
mCmd.Parameters("@VSES_VALEUR").Value
Joël Descombes
MCAD.Net
"Thibault" a écrit :
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de
rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then
fcVariable = mDr("VSES_VALEUR")
end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
> Hé hé... Salut Thibault !
> Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer.
> En ce qui concerne ton problème, il manque un traitement essentiel avant de
> pouvoir lire quoi que ce soit :
> Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true
> avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment
> remontées, et donc t'as Nothing.
>
> Joël Descombes
> MCAD.Net
>
> "Thibault" a écrit :
>
> > Bonjour à tous
> >
> > Tout d'abord une très bonne année à vous tous.
> >
> > Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing
> > alors que lorsque je l'execute dans l'analyseur de requete de sql server il
> > me retroune la bonne valeur !!!!
> >
> > Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème :
> >
> > Public Function fcVariable(ByVal myVariable As String) As String
> > Dim mConn As New SqlConnection(strConnectSession)
> > mConn.Open()
> >
> > Dim mCmd As New SqlCommand("sp_Variable", mConn)
> > mCmd.CommandType = CommandType.StoredProcedure
> >
> > Dim ParamfcVariable As SqlParameter =
> > mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int)
> > ParamfcVariable.Direction = ParameterDirection.ReturnValue
> >
> > ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int)
> > ParamfcVariable.Direction = ParameterDirection.Input
> > ParamfcVariable.Value = _SessionId
> >
> > ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM",
> > SqlDbType.VarChar, 50)
> > ParamfcVariable.Direction = ParameterDirection.Input
> > ParamfcVariable.Value = myVariable
> >
> > ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR",
> > SqlDbType.VarChar, 255)
> > ParamfcVariable.Direction = ParameterDirection.InputOutput
> > ParamfcVariable.Value = "" <======== le problème doit provenir
> > de cette ligne
> >
> > Try
> >
> > Dim mDr As SqlDataReader = mCmd.ExecuteReader()
> >
> > fcVariable = mDr("VSES_VALEUR")
> >
> > Catch ex As Exception
> >
> > 'Affichage du détail de l'erreur
> > strMessage = "<b>Message d'erreur : </b>" & ex.Message &
> > "<br><br>"
> > strMessage &= "<b>Source de l'erreur : </b>" & ex.Source &
> > "<br><br>"
> > strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace
> > & "<br><br>"
> >
> > Finally
> >
> > mConn.Close()
> >
> > End Try
> >
> > End Function
> >
> >
> > A mon avis le problème doit provenir de mon dernier parametre que je passe a
> > ma procedure stockée qui a une direction input output et dont la valeur est
> > "" (vide)
> >
> > Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre
> > un chaine vide ?
> >
> > Cordialement,
> >
@VSES_VALEUR est un parametre de procédure, et n'est pas contenu dans un recordset. Pour récupérer sa valeur tu fais : mCmd.Parameters("@VSES_VALEUR").Value
Joël Descombes MCAD.Net
"Thibault" a écrit :
Bonjour Joël, effectivement c'est une faute d'inattention, je viens de rectifier en ajoutant :
Dim mDr As SqlDataReader = mCmd.ExecuteReader()
mDr.read()
if not(Dr is nothing) then fcVariable = mDr("VSES_VALEUR") end if
Mais ça me retourne toujours la nothing !!! Pourquoi ?
"Joël Descombes" wrote:
> Hé hé... Salut Thibault ! > Je crois que MS a un très bon bouquin sur ADO.NET, tu devrais te le procurrer. > En ce qui concerne ton problème, il manque un traitement essentiel avant de > pouvoir lire quoi que ce soit : > Il te faut faire mDr.Read() et verifier que le résultat renvoyé est true > avant de faire mDr('"VSES..."). Sinon tes données elles ne sont pas vraiment > remontées, et donc t'as Nothing. > > Joël Descombes > MCAD.Net > > "Thibault" a écrit : > > > Bonjour à tous > > > > Tout d'abord une très bonne année à vous tous. > > > > Ensuite j'ai un souci avec une procédure stockée qui me retourne nothing > > alors que lorsque je l'execute dans l'analyseur de requete de sql server il > > me retroune la bonne valeur !!!! > > > > Voici mon code si ça peut aider quelqu'un à m'explquer où est le problème : > > > > Public Function fcVariable(ByVal myVariable As String) As String > > Dim mConn As New SqlConnection(strConnectSession) > > mConn.Open() > > > > Dim mCmd As New SqlCommand("sp_Variable", mConn) > > mCmd.CommandType = CommandType.StoredProcedure > > > > Dim ParamfcVariable As SqlParameter = > > mCmd.Parameters.Add("RETURN_VALUE", SqlDbType.Int) > > ParamfcVariable.Direction = ParameterDirection.ReturnValue > > > > ParamfcVariable = mCmd.Parameters.Add("@SES_ID", SqlDbType.Int) > > ParamfcVariable.Direction = ParameterDirection.Input > > ParamfcVariable.Value = _SessionId > > > > ParamfcVariable = mCmd.Parameters.Add("@VSES_NOM", > > SqlDbType.VarChar, 50) > > ParamfcVariable.Direction = ParameterDirection.Input > > ParamfcVariable.Value = myVariable > > > > ParamfcVariable = mCmd.Parameters.Add("@VSES_VALEUR", > > SqlDbType.VarChar, 255) > > ParamfcVariable.Direction = ParameterDirection.InputOutput > > ParamfcVariable.Value = "" <======== le problème doit provenir > > de cette ligne > > > > Try > > > > Dim mDr As SqlDataReader = mCmd.ExecuteReader() > > > > fcVariable = mDr("VSES_VALEUR") > > > > Catch ex As Exception > > > > 'Affichage du détail de l'erreur > > strMessage = "<b>Message d'erreur : </b>" & ex.Message & > > "<br><br>" > > strMessage &= "<b>Source de l'erreur : </b>" & ex.Source & > > "<br><br>" > > strMessage &= "<b>Trace de l'erreur : </b>" & ex.StackTrace > > & "<br><br>" > > > > Finally > > > > mConn.Close() > > > > End Try > > > > End Function > > > > > > A mon avis le problème doit provenir de mon dernier parametre que je passe a > > ma procedure stockée qui a une direction input output et dont la valeur est > > "" (vide) > > > > Quelqu'un aurait il une petite idée sur la synthaxe pour passer en paramètre > > un chaine vide ? > > > > Cordialement, > >