【问题标题】:Using Parameterised Query to Populate Datalist使用参数化查询填充 Datalist
【发布时间】:2013-05-01 16:28:36
【问题描述】:

我一直在尝试使用以下参数将不同的值作为 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 附近的语法不正确”

代码有什么问题..?

【问题讨论】:

    标签: c# sql parameter-passing datalist


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 2017-11-28
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-03
      • 2011-03-21
      • 2016-03-03
      相关资源
      最近更新 更多