2017-08-25 45 views
-1

Je ne suis pas un maître SQL donc j'espère que ce n'est pas un gros problème. :) Voici mon SQL:"Utilisation invalide de l'option NEXT dans l'instruction FETCH."

query = "SELECT id, email, firstName, lastName " + 
     "FROM [WarehouseUser] " + 
     "WHERE email LIKE '%' + @Filter + '%' OR FirstName LIKE '%' + @Filter + '%' OR LastName LIKE '%' + @Filter + '%'" + 
     "ORDER BY " + "DESC" + 
     "OFFSET @Offset ROWS " + 
     "FETCH NEXT @Length ROWS ONLY;"; 

Lorsque cela est exécuté, je reçois l'erreur suivante:

System.Data.SqlClient.SqlException: 'Incorrect syntax near '@Offset'. Invalid usage of the option NEXT in the FETCH statement.'

Qu'est-ce que je fais mal?

+3

(1) Quelle base de données utilisez-vous? Veuillez marquer correctement. (2) À quoi ressemble la requête après la substitution de variables? –

+2

que contient 'sort'? Imprimez quelque part la dernière chaîne de caractères sql, essayez de l'exécuter et voyez où se trouve le problème ... Je pense qu'il doit être sur le 'sort' ou sur les numéros de l'offset, de la longueur (et avant l'ordre vous n'avez pas de – Aristos

+0

il pourrait être le '+' et '" 'après le' sort' qui est foiré – Alam

Répondre

1

Vous pouvez voir le problème lorsque vous affichez la valeur de votre variable et regardez la requête SQL qu'il écrit. Ici vous avez besoin d'un espace après "DESC". Comme "DESC ". Vous avez actuellement DESCOFFSET au lieu de DESC OFFSET. Voir ici:

http://rextester.com/live/RKRXM8567