gpt4 book ai didi

c# - 了解 'The SqlParameter is already contained by another SqlParameterCollection'

转载 作者:太空宇宙 更新时间:2023-11-03 22:43:21 42 4
gpt4 key购买 nike

我有以下代码:

SqlParameter invidParam = new SqlParameter("@invid",obj.INVID);
SqlParameter prodParam = new SqlParameter("@prod", obj.PROD);
SqlParameter descrParam = new SqlParameter("@descr", obj.DESCR);
SqlParameter qtyParam = new SqlParameter("@qty", 1);

if(SessionHelper.TryGetSession("curUser",out User user))
{
SqlParameter useridParamCheck = new SqlParameter("@userid", user.Username);

var queryResult = db.Database.SqlQuery<int>("EXEC CheckIfAlreadyInPR#invid#userid @invid, @userid", invidParam, useridParamCheck);
var qty = queryResult.FirstOrDefault();

if (qty == 0)
{
SqlParameter useridParamInsert = new SqlParameter("@userid", user.Username);
var insertResult = db.Database.ExecuteSqlCommand("InsertIntoPR @invid, @prod, @descr, @userid, @qty", invidParam, prodParam, descrParam, useridParamInsert, qtyParam);
}
else if (qty > 0)
{
SqlParameter qtyParameter = new SqlParameter("@newqty", (qty + 1));
SqlParameter userIdParamUpdate = new SqlParameter("@userid", user.Username);

var updateResult = db.Database.ExecuteSqlCommand("UpdatePRQty#invid#userid#newqty @invid,@userid,@newqty",invidParam,userIdParamUpdate,qtyParameter);
}
}

我的程序运行并在 var insertResult = db... 行遇到异常

我试图了解哪个 SqlParameter 已包含在另一个集合中。是因为参数@userid已经在之前的存储过程调用中使用了吗?

我用不同的变量名称声明了 SqlParameter("@userid") 3 次:

useridParamCheck, useridParamInsert, userIdParamUpdate

是否因为使用了名称 @userid 而导致错误?如果我使用@userid1@userid2@userid3,问题会解决吗?或者已经包含的SqlParameter是我上面声明的其他一些SQL参数?

谢谢

最佳答案

我要建议 invidparam是你的问题参数,因为它是我能看到的唯一被使用两次的参数。曾经在db.Database.SqlQuery<int>("EXEC CheckIfAlreadyInPR#invid#userid @invid, @userid", invidParam, useridParamCheck);并在 db.Database.ExecuteCommand() 的两个实例中再次出现.

错误本身与 SqlParameter 有关对象被多次使用,而不是同一参数名称被多次使用。

关于c# - 了解 'The SqlParameter is already contained by another SqlParameterCollection',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51150215/

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