Ошибка: объект OracleParameter уже содержится в коллекции

#c# #asp.net #oracle #wcf #ado.net

Вопрос:

У меня есть приведенный ниже фрагмент кода

 var parametersList = new Listlt;OracleParametergt;(); if (items != null) {  foreach (string item in items) {  parametersList.Add(new OracleParameter(“@item”, item));  ExecuteQuery(“sp_submitItem”, parametersList);  }  }  

И в методе ExecuteQuery он перебирает parametersList и добавляет их в OracleParameterCollection in OracleCommand , используя OracleDataAdapter , он заполняет результат в a DataTable и возвращает результат.

Как ты думаешь, почему я получаю эту ошибку OracleParameter object is already contained in a collection

Комментарии:

1. Потому что у вас не может быть двух параметров с одинаковым именем. Как определяется идентификатор sp_submitItem?

2. @OldProgrammer что вы имеете в виду, говоря, что у меня не может быть двух параметров с одинаковым именем? Каждый раз, когда цикл повторяется, я передаю один параметр хранимой процедуре, и она выполняется. и sp_submitItem принимает один входной параметр

3. вы продолжаете добавлять один и тот же параметр в список.

4. @OldProgrammer поэтому я думаю, что решением этой проблемы было бы очистить список параметров после того, как я вызову метод ExecuteQuery, правильно?

5. это должно сработать