L'obtention de l'ID après avoir insérer dans SQL Server
- Je utiliser cette procédure stockée pour faire d'insertion et de retour à l'id de la ligne insérée
ALTER PROCEDURE [dbo].[addObjective]
(
@Name nvarchar(250)
,@ObjectiveGroupId int
,@CreatorId int
,@LanguageId int
,@isFinal bit
)
as
insert into Objective values
(
@Name
,@ObjectiveGroupId
,@CreatorId
,GETDATE()
,@LanguageId
,@isFinal
)
select scope_identity() as Id;
Mais comment lire le retour de l'id à l'aide de vb.net
code
à l'aide de cette commande retour -1
OriginalL'auteur Adham | 2012-01-29
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous êtes à l'aide de la valeur de retour d'un appel à
.ExecuteNonQuery()
dans votre VB.NET code (que vous n'êtes pas à nous montrer...... donc, je ne peux que deviner).C'est une mauvaise valeur à la lecture de cette valeur serait de retourner le nombre de lignes qui ont été touchés par votre dernière instruction SQL (par exemple, par un
INSERT
,UPDATE
ouDELETE
).Depuis votre procédure stockée EST de retourner une valeur nouvellement inséré
ID
- et elle retourne une seule ligne, une seule valeur de la colonne (juste leID
, rien d'autre), vous avez besoin de lire que la valeur - par exemple, en appelant.ExecuteScalar()
à la place:OriginalL'auteur marc_s
OriginalL'auteur Nathanielle