Sto cercando eseguire una select di questo tipo:
In pratica voglio tirare fuori tutti gli utenti che hanno come IDUtente i valori 1, 2, 3, 5 e 7.codice:SELECT * FROM Utente WHERE IDUtente IN (1,2,3,5,7)
Questa query viene impostata tramite l'utilizzo di parametri in questo modo:
dove Trasforma è una funzione che restituisce una stringacodice:... da.SelectCommand.CommandText ="SELECT * FROM Utente WHERE IDUtente IN @Tabella" da.SelectCommand.Parameters.Add(New SqlParameter("@Tabella",Trasforma(Table))) da.Fill(Data) ...
La funzione Trasforma funziona bene: prende come parametro un datatable e restituisce una stringa che contiene gli IDUtente da cercare in questo modo: (1,2,3,5,7)codice:Private Function Trasforma(ByVal table AS UtenteDataTable) As String ... End Function
Quando però il parametro @Tabella viene sostituito la query diventa
perché il risultato della funzione è di tipo String, e così non funziona.codice:SELECT * FROM Utente WHERE IDUtente IN '(1,2,3,5,7)'
Invece la query funzionerebbe (l'ho provata direttamente nel db) se fosse senza apici perché (1,2,3,5,7), di fatto, è una tabella:
Qualcuno sa come risolvere questo problema?codice:SELECT * FROM Utente WHERE IDUtente IN (1,2,3,5,7)
Grazie.
Giulio

Rispondi quotando