我正在使用 SQL Server 2005 和 C#。我想在向数据库中插入记录时获取主键值。
为此,我有一个 C# 方法,我可以在其中插入和更新记录。我正在使用 ExecuteScalar
方法进行插入和更新。
插入成功,但更新失败。如何使用 ExecuteScalar
获取更新的主键?
最佳答案
通常,ExecuteScalar 方法用于返回至少一个数据字段的查询(例如,来自 SELECT 查询的结果)。如果您只想执行某些操作,则应改用 ExecuteNonQuery 方法。
即使使用 ExecuteNonQuery 方法,您仍然可以在函数完成后读取参数值。例如,您的命令可能类似于:
INSERT INTO TableName(someFields) VALUES (someValues)
SET @Id = SCOPE_IDENTITY()
如果你使用自增键或者
SET @Id = newid()
INSERT INTO (ID, someFields) VALUES (@id, someValues)
如果您使用 uniqueidentifier 作为键。
之后,您可以将输出@Id 参数添加到命令,调用 ExecuteNonQuery,然后从参数中读取值。
关于c# - 我可以使用 ExecuteScalar 进行更新吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3699649/