Galera estou com uma duvida e gostaria que me ajudassem a entender o porque não consigo trazer como parâmetro uma lista que criei a partir de checkbox chegados na minha aplicação em C# + ASP.NET , é o seguinte tenho 3 tabelas(Treinamentos , Participantes e Funcionários) ou seja um treinamento tem vários participantes(Funcionários), então quando Seleciono no GridView da minha aplicação os participante eu monto uma Lista de selecionados e gravo no banco da seguinte forma (
‘1’,’2’,’3’,’4’,’5’
) , sendo assim preciso usar esses dados como parâmetro na minha clausula IN.Ficando assim:
SELECT FUNC_ID FROM FUNCIONARIOS
WHERE FUNC_ID IN (‘1’,’2’,’3’,’4’,’5’)
dessa maneira consigo recuperar todos os participantes daquele treinamento porem na procedure não esta reconhecendo o parâmetro como String/Varchar alguém sabe como faço pra usar essa lista como parâmetro na clausula IN do SQL SERVER 2008 ? ficarei muito grato pois já tentei varias forma porem sem sucesso , a baixo segue a Procedure com a logica completa.
Descrição das Tabelas
Funcionarios (FUNC_ID INT,FUNC_NOME VARCHAR(50))
Treinamentos(TREI_ID INT,TREI_NOME VARCHAR (50))
TREINAMENTOS_PARTICIPANTES(TREI_ID INT , TRPA_LIST_PARTICIPANTES VARCHAR (50)
obs: os dados da lista são gravados da seguinte forma,
'1','2','3'
/*Procedure Busca Participantes*/
CREATE PROCEDURE Busca_Participantes (
@TREI_ID as INT
)
AS
DECLARE @ListaFunc_IDs VARCHAR(500)
BEGIN
SET @ListaFunc_IDs = @ListaFunc_IDs + (SELECT TRPA_LIST_PARTICIPANTES FROM TREINAMENTOS_PARTICIPANTES
WHERE TREI_ID = (@TREI_ID))
END
BEGIN
SELECT FUNC_ID FROM FUNCIONARIOS
WHERE FUNC_ID IN (@ListaFunc_IDs)
END