2013-05-07 55 views
1

我一直在試圖按如下方式使用傳遞參數,如SQL查詢中的不同值:使用參數化的查詢來填充Datalist中

SELECT TOP 5 * 
FROM Events 
WHERE EID NOT IN (SELECT TOP @limit EID FROM Events ORDER BY EID) 

爲了利用值指定的第n行之後發現記錄參數@limit

E.g.如果我指定值10,那麼查詢返回6-10行。

現在我在做什麼然後

string str = "SELECT TOP 5 * FROM Events WHERE EID NOT IN (SELECT TOP @limit EID FROM Events ORDER BY EID)" 

SqlCommand cmd=new SqlCommand(str,con); // con is the connection string 

cmd.Parameters.AddWithValue("limit", value); 

SqlDataAdapter sda= new SqlDataAdapter(cmd); 
DataSet ds=new DataSet(); 
sda.Fill(ds); 

return ds; 

數據集ds綁定到Datalist

目前拋出錯誤說

錯誤的代碼

「近@limit不正確的語法」 是什麼(是)..?

回答

6

使用你有一個參數來包圍參數括號拉動TOP n

string str= "SELECT TOP 5 * FROM Events WHERE EID NOT IN (SELECT TOP (@limit) EID FROM Events ORDER BY EID)" 
+0

+1很大,我不知道 – Steve 2013-05-07 16:23:44

+0

哇..!現在它工作正常..非常感謝:) – 2013-05-07 16:23:54