gpt4 book ai didi

c# - 检索 scope_identity 时指定的转换无效

转载 作者:太空狗 更新时间:2023-10-29 17:29:55 25 4
gpt4 key购买 nike

我遇到异常:“指定的转换无效”,这是代码

con.Open();
string insertQuery = @"Insert into Tender (Name, Name1, Name2) values ('Val1','Val2','Val3');Select Scope_Identity();";

SqlCommand cmd = new SqlCommand(insertQuery, con);
cmd.ExecuteNonQuery();
tenderId = (int)cmd.ExecuteScalar();

最佳答案

为了完整性,您的代码示例存在三个问题。

1) 您通过调用 ExecuteNonQueryExecuteScalar 执行查询两次。因此,每次运行此函数时,您都将向表中插入两条记录。您的 SQL 虽然是两个不同的语句,但会一起运行,因此您只需要调用 ExecuteScalar

2) Scope_Identity() returns a decimal .您可以对查询结果使用 Convert.ToInt32,也可以将返回值转换为 decimal,然后再转换为 int。

3) 请务必将连接和命令对象包装在 using 语句中,以便正确处理它们。

using (SqlConnection connection = new SqlConnection(connectionString))
{
using (SqlCommand command = new SqlCommand(sql, connection))
{
connection.Open();
int tenderId = (int)(decimal)command.ExecuteScalar();
}
}

关于c# - 检索 scope_identity 时指定的转换无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3027755/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com