gpt4 book ai didi

c# - 无法解决 “Sqlparameter is already contained by another SqlparameterCollection”

转载 作者:行者123 更新时间:2023-12-03 13:17:57 28 4
gpt4 key购买 nike

我在Windows服务中使用2个线程(来自同一类)。我总是收到相同的错误消息:

"The SqlParameter is already contained by another SqlParameterCollection.
at System.Data.SqlClient.SqlParameterCollection.Validate(Int32 index, Object value)
at System.Data.SqlClient.SqlParameterCollection.Add(Object value)
at System.Data.SqlClient.SqlParameterCollection.Add(SqlParameter value)
at DataBaseLayer.SqlDataBaseLayer.FillDataSetFromProcedure(String strStoredProc, ArrayList parameterCollection)
at TestThread.StartThreads()"

我试图通过创建SqlParameters和Arraylist的新实例来解决该问题。我还尝试在代码的for循环的和处清除arraylists。这不能解决问题。我愿意接受任何建议。

最佳答案

您正在尝试将SqlParameter添加到SqlParameterCollection两次。跨线程可能会或可能不会发生这种情况。

如果这是一个多线程问题,那么所有变量都应在本地范围内,因为如果不是,则应该在访问时实现同步,可能使用lock

如果这不是并发问题,则应该通过对SqlParameter变量执行“查找所有引用”来轻松确定问题。

无论哪种方式,如果您发布一些代码,我们都可以为您提供更多帮助。

关于c# - 无法解决 “Sqlparameter is already contained by another SqlparameterCollection”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6289607/

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