2017-08-25 30 views
-1

我不是SQL高手,所以我希望这不是一个大问题。 :)这是我的SQL:“FETCH语句中NEXT选项的使用无效。”

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;"; 

当这样执行,我得到以下错误:

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

我在做什么错?

+3

(1)你使用了哪个数据库?请适当标记。 (2)变量替换之后查询是什么样的? –

+2

'sort'包含什么?打印最后一个sql呈现字符串的地方,尝试直接运行它,看看问题在哪里......我认为必须在“排序”或偏移量,长度的数字上(并且在你没有任何订单之前空格 – Aristos

+0

它可能是'sort'后面的'+'和'''搞砸了 – Alam

回答

1

当您输出变量的值并查看它写入的SQL查询时,可以看到问题。这里你需要"DESC"之后的空格。像"DESC "。您目前有DESCOFFSET而不是DESC OFFSET。在这里看到:

http://rextester.com/live/RKRXM8567