ArrayList filters = new ArrayList();
filters.Add(new string[] { "Name", "Equals", "John" });
ObjectDataSource1.SelectParameters.Add("AppliedFilters",
string.Join(",",(string[])filters.ToArray(typeof(string))));
Я пытаюсь добавить параметр к моему источнику данных объекта, который привязан к моему методу выбора, который должен принимать строку []. Но поскольку SelectParameters.Add принимает (string, string) или другие 3 перегрузки, которые, похоже, не работают для меня правильно.
Метод select принимает строковый параметр, хотя я предпочитаю, чтобы он принимал строку [] или arrayylist, но пока я могу жить с принятием строки, которую я должен преобразовать обратно в строку []
Разрешение: подписался на эту статью текст ссылки
Закрыто как дубликат вопроса, упомянутого выше.





Думаю, вы ошибаетесь.
Полагаю, это должен быть код
ObjectDataSource1.SelectParameters.Add(filters[0], filters[2));
Если вы посмотрите документ MSDN, в нем говорится, что 1-й аргумент должен быть именем параметра, а 2-й аргумент должен быть значением параметра.
Пожалуйста, прочтите внимательно документ. http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.parametercollection.add.aspx
shahkalpesh: добавление имеет 4 перегрузки, и я решил, что использую этот msdn.microsoft.com/en-us/library/dxsac270.aspx, создам имя моего параметра под названием «AppliedFilters» и преобразую arrayylist в строку
Вы это имели в виду?
arrList.ToArray(typeof(string)) as string[];
Или вы пытаетесь соединить струны вместе?
Ошибка, которую, как мне кажется, вы здесь делаете, заключается в том, что я бы разделил их на три разные переменные, а не помещал их все в список массивов. В вашем примере:
var filterField = "Name";
var filterComparison = "Equals";
var filterValue = "John";
arronchick: Причина, по которой я использовал ArrayList, заключается в том, что у меня может быть несколько фильтров, и я не хочу ограничивать его одним фильтром. У меня может быть "name" "равно" "john" и дополнительный фильтр "Date" "<" "10/10/2008". Таким образом, мой SelectMetjod получает значение с разделителями, которое я могу повторять.
Вероятно, вам следует закрыть это как дубликат.