Voici un bout de mon code, base de donnée SQL server. Dans ma procédure
stockée je renvoi une valeur qui correspond au plus grand nombre trouvé dans
une colonne.
Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
NBLGN = cmdNumLigne.ExecuteNonQuery()
End With
Quand je fais un test dans SQL server ca fonctionne bien, mais arrivé avec
mon code, je recois tjs la valeur -1.
je pense que je ne récupère pas la valeur de retour de ma procédure mais la
valeur comme quoi la procédure s'est exécuté !!!
Comment récupérer la bonne valeur ???
Voici ma procédure :
CREATE PROCEDURE ps_sgsa_numligne
(
@NUBL_BL BIGINT
)
AS
BEGIN
DECLARE @NBLGN INT
SELECT MAX(LI_LIGN) AS Expr1
FROM dbo.LIVRAISONS
WHERE (LI_NUBL = @NUBL_BL)
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
Fabien Bezagu
Aitoz,
ExecuteNonQuery renvoie le nombre de lignes affectées. Ici aucune. ExecuteScalar renvoie le résultat de la procédure. Je pense que ce sera mieux.
Fabien
"aitoz" a écrit dans le message de news:
Bonjour a tous,
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure stockée je renvoi une valeur qui correspond au plus grand nombre trouvé dans une colonne. Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Quand je fais un test dans SQL server ca fonctionne bien, mais arrivé avec mon code, je recois tjs la valeur -1. je pense que je ne récupère pas la valeur de retour de ma procédure mais la valeur comme quoi la procédure s'est exécuté !!!
Comment récupérer la bonne valeur ???
Voici ma procédure :
CREATE PROCEDURE ps_sgsa_numligne ( @NUBL_BL BIGINT ) AS BEGIN DECLARE @NBLGN INT
SELECT MAX(LI_LIGN) AS Expr1 FROM dbo.LIVRAISONS WHERE (LI_NUBL = @NUBL_BL)
RETURN @NBLGN
END go
Aitoz,
ExecuteNonQuery renvoie le nombre de lignes affectées. Ici aucune.
ExecuteScalar renvoie le résultat de la procédure. Je pense que ce sera
mieux.
Fabien
"aitoz" <laurent9@hotmail.com> a écrit dans le message de news:
ey0aoRusFHA.2544@TK2MSFTNGP10.phx.gbl...
Bonjour a tous,
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure
stockée je renvoi une valeur qui correspond au plus grand nombre trouvé
dans une colonne.
Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
NBLGN = cmdNumLigne.ExecuteNonQuery()
End With
Quand je fais un test dans SQL server ca fonctionne bien, mais arrivé avec
mon code, je recois tjs la valeur -1.
je pense que je ne récupère pas la valeur de retour de ma procédure mais
la valeur comme quoi la procédure s'est exécuté !!!
Comment récupérer la bonne valeur ???
Voici ma procédure :
CREATE PROCEDURE ps_sgsa_numligne
(
@NUBL_BL BIGINT
)
AS
BEGIN
DECLARE @NBLGN INT
SELECT MAX(LI_LIGN) AS Expr1
FROM dbo.LIVRAISONS
WHERE (LI_NUBL = @NUBL_BL)
ExecuteNonQuery renvoie le nombre de lignes affectées. Ici aucune. ExecuteScalar renvoie le résultat de la procédure. Je pense que ce sera mieux.
Fabien
"aitoz" a écrit dans le message de news:
Bonjour a tous,
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure stockée je renvoi une valeur qui correspond au plus grand nombre trouvé dans une colonne. Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Quand je fais un test dans SQL server ca fonctionne bien, mais arrivé avec mon code, je recois tjs la valeur -1. je pense que je ne récupère pas la valeur de retour de ma procédure mais la valeur comme quoi la procédure s'est exécuté !!!
Comment récupérer la bonne valeur ???
Voici ma procédure :
CREATE PROCEDURE ps_sgsa_numligne ( @NUBL_BL BIGINT ) AS BEGIN DECLARE @NBLGN INT
SELECT MAX(LI_LIGN) AS Expr1 FROM dbo.LIVRAISONS WHERE (LI_NUBL = @NUBL_BL)
RETURN @NBLGN
END go
aitoz
Trop fort ! Ca c'est cool !!! ca marche !
Franchement je ne savais pas la différence entre les différents mode ! je pensais qu'il s'agissait d'autres choses. Bon, je prend mon bouquin et je fais comme booboo je me relis le chapitre.
Merci ca marche impec
Trop fort ! Ca c'est cool !!! ca marche !
Franchement je ne savais pas la différence entre les différents mode ! je
pensais qu'il s'agissait d'autres choses.
Bon, je prend mon bouquin et je fais comme booboo je me relis le chapitre.
Franchement je ne savais pas la différence entre les différents mode ! je pensais qu'il s'agissait d'autres choses. Bon, je prend mon bouquin et je fais comme booboo je me relis le chapitre.
Merci ca marche impec
Francois Muller
"aitoz" a écrit dans le message de news:
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure stockée je renvoi une valeur qui correspond au plus grand nombre trouvé dans une colonne. Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Le ExecuteNonQuery est destiné (comme son nom l'indique) à exécuter des ordres ne retournant intrinsèquement pas d'info (INSERT, DELETE, typiquement ou éventuellement des ordres d'administration - CREATE TABLE, ALTER, etc ...). ExecuteQuery ne renvoie que le nombre de ligne affectées par l'opération dans la DataBase. (Par exemple si tu fais un ExecuteNonQuery de "DELETE TableTartempion", il te renverra le nombre de ligne supprimées).
Utilise ExecuteScalar pour un retour de valeur unique.
F.
"aitoz" <laurent9@hotmail.com> a écrit dans le message de news:
ey0aoRusFHA.2544@TK2MSFTNGP10.phx.gbl...
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure
stockée je renvoi une valeur qui correspond au plus grand nombre trouvé
dans une colonne.
Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne
.Connection = SqlConnection1
.CommandType = CommandType.StoredProcedure
.CommandText = "ps_sgsa_numligne"
NBLGN = cmdNumLigne.ExecuteNonQuery()
End With
Le ExecuteNonQuery est destiné (comme son nom l'indique) à exécuter des
ordres ne retournant intrinsèquement pas d'info (INSERT, DELETE, typiquement
ou éventuellement des ordres d'administration - CREATE TABLE, ALTER, etc
...).
ExecuteQuery ne renvoie que le nombre de ligne affectées par l'opération
dans la DataBase. (Par exemple si tu fais un ExecuteNonQuery de "DELETE
TableTartempion", il te renverra le nombre de ligne supprimées).
Utilise ExecuteScalar pour un retour de valeur unique.
Voici un bout de mon code, base de donnée SQL server. Dans ma procédure stockée je renvoi une valeur qui correspond au plus grand nombre trouvé dans une colonne. Je voudrais récupérer ce nombre et l'utiliser par la suite.
With cmdNumLigne .Connection = SqlConnection1 .CommandType = CommandType.StoredProcedure .CommandText = "ps_sgsa_numligne" NBLGN = cmdNumLigne.ExecuteNonQuery() End With
Le ExecuteNonQuery est destiné (comme son nom l'indique) à exécuter des ordres ne retournant intrinsèquement pas d'info (INSERT, DELETE, typiquement ou éventuellement des ordres d'administration - CREATE TABLE, ALTER, etc ...). ExecuteQuery ne renvoie que le nombre de ligne affectées par l'opération dans la DataBase. (Par exemple si tu fais un ExecuteNonQuery de "DELETE TableTartempion", il te renverra le nombre de ligne supprimées).
Utilise ExecuteScalar pour un retour de valeur unique.
F.
Francois Muller
"Francois Muller" a écrit dans le message de news: O7dQD%
ExecuteQuery ne renvoie que le nombre de ligne affectées par l'opération
Lire "ExecuteNonQuery", ci dessus ;-))
F.
"Francois Muller" <fcm_news_No_S_PAM_REPLACE_COM_BY_FR@yahoo.com> a écrit
dans le message de news: O7dQD%
ExecuteQuery ne renvoie que le nombre de ligne affectées par l'opération