Ada*_*dam 2 sql asp.net ms-access
[更新:如果我在参数中进行硬编码,则查询有效 - 因此它与我向查询添加参数的方式有关]
对于我的生活,我无法弄清楚这里的问题是什么.
以下是传递给datareader的查询:
SELECT * FROM (SELECT TOP ? StartDate, [ID] FROM
(SELECT TOP ? StartDate, [ID] FROM Story
ORDER BY StartDate DESC, [ID] DESC) AS foo
ORDER BY StartDate ASC, [ID] ASC) AS bar
INNER JOIN Story AS t ON bar.ID = t.ID
ORDER BY bar.StartDate DESC, bar.[ID] DESC
Run Code Online (Sandbox Code Playgroud)
参数按以下顺序添加:
var pNumToRetrieve = new OleDbParameter("", OleDbType.Integer) {Value = numToGet};
var pResultSet = new OleDbParameter("", OleDbType.Integer) {Value = resultSet};
_cmd.Parameters.Add(pNumToRetrieve);
_cmd.Parameters.Add(pResultSet);
Run Code Online (Sandbox Code Playgroud)
如果我直接将此查询输入访问,它就可以正常工作.但是,从ASP.NET运行查询时,我收到以下错误:
SELECT语句包括拼写错误或缺失的保留字或参数名称,或标点符号不正确.
我究竟做错了什么?
谢谢,
亚当
Jet SQL中的TOP N查询中的N无法参数化,周期.您必须动态编写SQL字符串以获取变量N.这意味着您不能使用已保存的QueryDef,或者您必须编辑QueryDef的SQL并在使用之前保存它.
| 归档时间: |
|
| 查看次数: |
9857 次 |
| 最近记录: |