Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 插入新行后如何获取其GUID值?_C#_Asp.net_Sql_Sql Server - Fatal编程技术网

C# 插入新行后如何获取其GUID值?

C# 插入新行后如何获取其GUID值?,c#,asp.net,sql,sql-server,C#,Asp.net,Sql,Sql Server,我正在尝试获取Sqlserver中新插入的记录的Id。我已经检查了Scope\u Identity(),但据说这会返回autoincrement列的值。我用于Id的列是Guid。我希望在插入后使用此Guid列值。这应该如何实现?或者我必须编写一个定制的繁琐函数来获取新插入记录的Id。您可以尝试使用,它类似于: INSERT INTO ExampleTable (<Column1>, <Column2>, <Column3>) OUTPUT INSERTED.

我正在尝试获取Sqlserver中新插入的记录的Id。我已经检查了
Scope\u Identity()
,但据说这会返回autoincrement列的值。我用于Id的列是Guid。我希望在插入后使用此Guid列值。这应该如何实现?或者我必须编写一个定制的繁琐函数来获取新插入记录的Id。

您可以尝试使用,它类似于:

INSERT INTO ExampleTable (<Column1>, <Column2>, <Column3>) 
OUTPUT INSERTED.ID
VALUES (<Value1>, <Value2>, <Value3>)

我不明白你的问题。在哪里创建guid?无论是在客户端代码中,还是在数据库的存储过程中,只要在创建它的位置使用该值即可。查看输出hhh。。。。这就是所谓的编码热。。。谢谢你,伙计。。我在笑我自己..你怎么读C#中的
OUTPUT INSERTED.ID
中返回的这个值?@Paul你会用与标量相同的方式使用它(它返回一个值)。检查我的编辑。啊,谢谢。我不知道
ExecuteScalar
可以返回除
int
之外的任何内容。所以您是说您可以执行类似于
Guid id=(Guid)command.ExecuteScalar()的操作
,因为问题是专门询问如何返回
guid
@Paul Yeah绝对,
ExecuteScalar
只返回结果集中第一行的第一列,即一个值,它可以是任何值。同样感谢您的帮助,我已经更新了答案。如果我们想获取所有插入行的GUID列表(即,如果插入多行),是否可以使用
命令.ExecuteReader()
var command = new SqlCommand("...");
Guid id = (Guid) command.ExecuteScalar();