QUERY COM CONDI?ÃO IN E INPUT DE PARÂMETROS
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:
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:
O problema é que fica vulnerável à uma SQLInjection.
Alguém consegue me orientar?
Grato.
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.
Apesar de estar em C#, dá pra entender.
www.svenbit.com/2014/08/using-sqlparameter-with-sqls-in-clause-in-csharp/
www.svenbit.com/2014/08/using-sqlparameter-with-sqls-in-clause-in-csharp/
Resolvido!
Obrigado!
Obrigado!
Tópico encerrado , respostas não são mais permitidas