【发布时间】:2009-07-15 20:53:10
【问题描述】:
[更新:如果我在参数中硬编码,查询就可以工作 - 所以它与我向查询中添加参数的方式有关]
对于我的生活,我无法弄清楚这里有什么问题。
这是传递给数据读取器的查询:
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
参数按以下顺序添加:
var pNumToRetrieve = new OleDbParameter("", OleDbType.Integer) {Value = numToGet};
var pResultSet = new OleDbParameter("", OleDbType.Integer) {Value = resultSet};
_cmd.Parameters.Add(pNumToRetrieve);
_cmd.Parameters.Add(pResultSet);
如果我直接将此查询输入到访问中,它就可以正常工作。但是,当从 ASP.NET 运行查询时,我收到以下错误:
SELECT 语句包含拼写错误或缺失的保留字或参数名称,或标点不正确。
我做错了什么?
谢谢,
亚当
【问题讨论】:
-
问题在于在 ASP.NET 中运行字符串。因此,所需的标签和应用技能将是 ASP.NET。 ???
-
你能扩展一下吗?我在上面粘贴的查询取自 asp.net 中的调试器 - 这是传递的确切值/字符串。
-
我认为他们的意思是你的问题应该被标记为 ASP.NET 而不是 SQL。但是,从您接受的答案看来,这不是真的。
-
啊,我明白了。我改变了标签。谢谢——亚当