2016-03-13 29 views
1

我遇到SQL查詢問題。如何選擇具有關鍵字的特定行

我使用Visual Studio 2015測試我的網站,並使用WebMatrix.Data.Database來完成我的查詢。

不管怎麼說,我創建一個答覆制度,我用這個查詢得到的答覆:

SELECT * 
FROM ThreadReply 
WHERE ThreadId = " + ThreadId + " 
ORDER BY ReplyId DESC 

我知道有沒有預防針對SQL注入的,所以請不要問我來解決這個問題。例如:

想要添加的查詢是從某一行開始並繼續一定數量的行,例如;我的意思是像LIMIT命令,你可以選擇你想要開始的行,但顯然它不適用於Visual Studio。

此外,請注意,我希望查詢行具有WHERE關鍵字的行爲true,因此不是實際表的行。

+0

你如何執行查詢?使用'command.ExecuteReader()'? –

+0

檢查我的答案,並告訴我是否幫助你。 – mybirthname

+0

是啊,它幫助,非常感謝,由於某種原因,當我把WHERE放入時,LIMIT關鍵字不起作用,還有Hari Prasad,我使用了WebMatrix.Data.Database.Query(); –

回答

2

在這裏,你認爲sql的註釋非常清晰。我也修復你的SQL注入,你只需要添加SqlCommand.Parameters

SELECT 
    * 
FROM 
    ThreadReply 
WHERE 
    [email protected] 
ORDER BY 
    ReplyId DESC 
OFFSET 
    10 ROWS -- skip 10 rows 
FETCH NEXT 
    10 ROWS ONLY -- take 10 rows 
+0

從2012年起支持此語法。對於舊版本,請參閱此問題http://stackoverflow.com/questions/2135418/equivalent-of-limit-and-offset-for-sql-server –