使用参数化查询填充数据列表

本文关键字:填充 数据 列表 查询 参数 | 更新日期: 2023-09-27 18:12:33

我一直在尝试使用如下参数在sql查询中传递不同的值:

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

查找由参数@limit的值指定的前n行之后的记录。

。如果指定值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附近语法错误"

代码有什么问题?

使用参数化查询填充数据列表

当使用参数拉动TOP n时,您必须将参数括在括号中:

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