QUERY COM CONDI?ÃO IN E INPUT DE PARÂMETROS

GGERMINIANI 19/06/2017 17:25:39
#474611
Senhores,
Boa tarde.

Estou enfrentando a seguinte dificuldade.

Tenho um Array populado com diversos IDs de uma tabela que me servem para um SELECT.

Acontece que quando tento passar a instrução e executo o comando de QUERY, não está me retornando os dados desejáveis.

Abaixo, o código:

  Dim comm As OleDbCommand = New OleDbCommand
comm.Connection = _cn
_query = [Ô]Select * From PRODUTO Where ID_CLASSE in (@classe) ORDER BY PRODUTO[Ô]
comm.Parameters.AddWithValue([Ô]@classe[Ô], Classes)

[ô]a varíavel Classes, fica populada da seguinte forma (por exemplo): 3,5,6,1,15
[ô]Na query, deveria ficar: Select * From PRODUTO Where ID_CLASSE in (3,5,6,1,15) ORDER BY PRODUTO

comm.CommandType = CommandType.Text
comm.CommandText = _query


Da forma acima, como menciono, não tenho êxito no comando, porém, se eu fizer de forma que não incluo parâmetros, o código funciona perfeitamente:

  If _cn.State = ConnectionState.Closed Then _cn.Open()
Dim comm As OleDbCommand = New OleDbCommand
comm.Connection = _cn
_query = [Ô]Select * From PRODUTO Where ID_CLASSE in ([Ô] & Classes & [Ô]) ORDER BY PRODUTO[Ô]
comm.CommandType = CommandType.Text
comm.CommandText = _query


O problema é que fica vulnerável à uma SQLInjection.

Alguém consegue me orientar?

Grato.
JABA 19/06/2017 18:03:10
#474614
Resposta escolhida
GGERMINIANI 19/06/2017 18:28:42
#474616
Resolvido!
Obrigado!
Tópico encerrado , respostas não são mais permitidas