2016-01-05 7 views
-1

Мне нужно передать параметр на стороне сервера в SQlDataSource SELECT IN-предложение следующим образом (обратите внимание на параметр @InClause и его местоположение в SQL-select, определяются в ASPX (для SqlDataSource).asp.net SqlDataSource select statement с предложением IN (...)

SELECT UID_REPORT, TXT_RPT_TEXT, TXT_RPT_NAME, TXT_RPT_ASPX_PAGE, TXT_RPT_TYPE 
FROM REPORTS WHERE (UID_REPORT IN (@InClause)) 
ORDER BY INT_SORT_ORDER 

Но это не проходит проверку в операции Test-запросах параметр «@InClause» получает это значение из элемента управления скрытого я хочу. установите это значение на основе некоторых условий. Например, если DIVISION = 5, то @InClause будет = "45,46" Else = "14,15". Любые предложения о том, как передать значения IN (...) скрытым полем .Стоимость (это, конечно, строка). Спасибо.

+0

Этот вопрос еще раз? http://vyaskn.tripod.com/passing_arrays_to_stored_procedures.htm –

+0

Я искал похожие вопросы/ответы в Stack-Overflow, не спрашивая в Интернете. В качестве ответа я отметил @ VR46, хотя ваша ссылка затевает решение в шести разных методах в контексте хранимых процедур. Благодарю. –

ответ

1

Вам нужно split string функцию, чтобы сделать это

SELECT uid_report, 
     txt_rpt_text, 
     txt_rpt_name, 
     txt_rpt_aspx_page, 
     txt_rpt_type 
FROM reports 
WHERE uid_report IN (SELECT split_value 
         FROM Udf_splitstring(@InClause, ',')) 
ORDER BY int_sort_order 

Проверьте ссылки ниже, чтобы создать функцию Разбивает строку

  1. http://sqlperformance.com/2012/07/t-sql-queries/split-strings
  2. http://www.sqlservercentral.com/articles/Tally+Table/72993/

или-конечно, вы можно использовать dynamic sql

+0

Является ли ваш опубликованный код работой в команде выбора ASPX или внутри окна сценария SQL-Server? Выбранный мной код select находится в коде SqlDataControl в aspx. –

+0

У меня нет ничего, чтобы проверить –

+0

Я использовал ваш опубликованный SQL-код в команде выбора SqlDataSource в коде aspx, и он отлично работал. У меня есть функция splitString в моем dbo, но я не знал, что смогу встроить ее в страницу aspx. Я использую его много раз в хранимых процедурах. Благодарю. –