2017-08-25 31 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