首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用Server获取ASP.NET中update语句的最近插入记录id

用Server获取ASP.NET中update语句的最近插入记录id
EN

Stack Overflow用户
提问于 2022-05-12 06:22:31
回答 2查看 85关注 0票数 0

在我的代码中,首先插入SQL表的记录。然后,在检查API响应之后,我想更新同一个表。为此,我希望获得插入的记录id并将其传递给update语句。我没找到拿到身份证的方法。请给出一个解决办法。谢谢

代码语言:javascript
运行
复制
using (SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
{
    sqlcon.Open();
    string query = "INSERT INTO GOU VALUES(@OldPassword,@DateTime,@NewPassword,@IsSuccess,@IsActive)";
    SqlCommand sqlCommand = new SqlCommand(query, sqlcon);
    sqlCommand.Parameters.AddWithValue("@OldPassword", "oldPassword");
    sqlCommand.Parameters.AddWithValue("@DateTime", DateTime.Now);
    sqlCommand.Parameters.AddWithValue("@NewPassword", "");
    sqlCommand.Parameters.AddWithValue("@IsSuccess", 0);
    sqlCommand.Parameters.AddWithValue("@IsActive", 0);
    sqlCommand.ExecuteNonQuery();                                

}
bool Apirespone = getResponse();
if (Apirespone == true)
{
    using (SqlConnection sqlCon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
    {
        sqlCon.Open();
        string query = "UPDATE GOU SET IsSuccess = @IsSuccess,IsActive = @IsActive where Id = @id";
        SqlCommand sqlCommand = new SqlCommand(query, sqlCon);
        sqlCommand.Parameters.AddWithValue("@IsSuccess", 1);
        sqlCommand.Parameters.AddWithValue("@IsActive", 1);
        sqlCommand.Parameters.AddWithValue("@Id", ????);//get recent added record id
        sqlCommand.ExecuteNonQuery();
    }

}
EN

回答 2

Stack Overflow用户

发布于 2022-05-12 07:08:55

可以使用"SCOPE_IDENTITY()“获取最后插入或更新的唯一表id

代码语言:javascript
运行
复制
 using (SqlConnection sqlcon = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]))
 {
     sqlcon.Open();
     string query = @"
INSERT INTO GOU VALUES(@OldPassword,@DateTime,@NewPassword,@IsSuccess,@IsActive);
select SCOPE_IDENTITY() as id;
";
     SqlCommand sqlCommand = new SqlCommand(query, sqlcon);
     sqlCommand.Parameters.AddWithValue("@OldPassword", "oldPassword");
     sqlCommand.Parameters.AddWithValue("@DateTime", DateTime.Now);
     sqlCommand.Parameters.AddWithValue("@NewPassword", "");
     sqlCommand.Parameters.AddWithValue("@IsSuccess", 0);
     sqlCommand.Parameters.AddWithValue("@IsActive", 0);
     int id = (int)sqlCommand.ExecuteScalar();
 }
票数 1
EN

Stack Overflow用户

发布于 2022-05-12 07:27:26

代码语言:javascript
运行
复制
CREATE TABLE #myTemp(identity_column INT IDENTITY(1,1), myColumn CHAR(10));

--在C#内联查询中使用此SQL。

代码语言:javascript
运行
复制
    INSERT #myTemp(myColumn) 
OUTPUT inserted.identity_column as id
VALUES('test');

--您可以将输出sql读入变量并按您的预期使用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72210920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档