我正在使用 SQL Server 2005 和 C#。我想在向数据库插入记录时获取主键值。
为此,我有一个 C# 方法,可以在其中插入和更新记录。我正在使用ExecuteScalar插入和更新方法。
插入成功,但更新不成功。我怎样才能ExecuteScalar获取更新的主键?
一般来说,ExecuteScalar 方法用于返回至少一个数据字段的查询(例如 SELECT 查询的结果)。如果您只想执行某些操作,则应该使用 ExecuteNonQuery 方法。
即使使用 ExecuteNonQuery 方法,您仍然可以在函数完成后读取参数值。例如,您的命令可能类似于:
INSERT INTO TableName(someFields) VALUES (someValues)
SET @Id = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)
如果您使用自动增量键或
SET @Id = newid()
INSERT INTO (ID, someFields) VALUES (@id, someValues)
Run Code Online (Sandbox Code Playgroud)
如果您使用 uniqueidentifier 作为键。
之后,您可以将输出@Id参数添加到命令中,调用ExecuteNonQuery,然后从参数中读取值。