在我的代码中,首先插入SQL表的记录。然后,在检查API响应之后,我想更新同一个表。为此,我希望获得插入的记录id并将其传递给update语句。我没找到拿到身份证的方法。请给出一个解决办法。谢谢
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();
}
}发布于 2022-05-12 07:08:55
可以使用"SCOPE_IDENTITY()“获取最后插入或更新的唯一表id
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();
}发布于 2022-05-12 07:27:26
CREATE TABLE #myTemp(identity_column INT IDENTITY(1,1), myColumn CHAR(10));--在C#内联查询中使用此SQL。
INSERT #myTemp(myColumn)
OUTPUT inserted.identity_column as id
VALUES('test');--您可以将输出sql读入变量并按您的预期使用它。
https://stackoverflow.com/questions/72210920
复制相似问题