gpt4 book ai didi

c# - 尽管数据已添加到数据库中,但 ExecuteScalar() 返回 null

转载 作者:太空狗 更新时间:2023-10-29 20:00:10 24 4
gpt4 key购买 nike

我有如下代码,我尝试将数据插入表中并返回新元素的 ID(由自动递增给出)。

int newEquipmentID = new int();

query = database.ParameterizedQueryString("INSERT INTO Equipment (EquipmentTypeID) VALUES ({0})", "equipmenttypeID");

newEquipmentID = (int)database.Connection.ExecuteScalar(query, DefaultTimeout, equipment.EquipmentTypeID);

但它失败并返回 null,就好像尚未添加新项目一样。但实际上我可以看到新项目在 DB 进行简单的咨询。

我的问题是“何时”将数据实际添加到数据库中以及如何获取新添加项目的 ID。谢谢!

最佳答案

您不需要两个查询来创建新记录和检索新标识值:

using (var con = new SqlConnection(ConnectionString)) {
int newID;
var cmd = "INSERT INTO foo (column_name)VALUES (@Value);SELECT CAST(scope_identity() AS int)";
using (var insertCommand = new SqlCommand(cmd, con)) {
insertCommand.Parameters.AddWithValue("@Value", "bar");
con.Open();
newID = (int)insertCommand.ExecuteScalar();
}
}

旁注:自 it's prone to errors 以来我不会使用这样的数据库类.

关于c# - 尽管数据已添加到数据库中,但 ExecuteScalar() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10211050/

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