gpt4 book ai didi

asp.net - MS Access 错误 : The SELECT statement includes a reserved word or an argument name that is misspelled or missing, 或标点符号不正确

转载 作者:行者123 更新时间:2023-12-02 10:33:17 27 4
gpt4 key购买 nike

[更新:如果我在参数中进行硬编码,查询就会起作用 - 所以这与我向查询添加参数的方式有关]

对于我的一生,我无法弄清楚这里的问题是什么。

这是传递给数据读取器的查询:

    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);

如果我直接将此查询输入到 access 中,它就可以正常工作。但是,当从 ASP.NET 运行查询时,出现以下错误:

SELECT 语句包含拼写错误或缺失的保留字或参数名称,或者标点符号不正确。

我做错了什么?

谢谢

亚当

最佳答案

Jet SQL 中的 TOP N 查询中的 N 不能参数化,期间。您必须即时编写 SQL 字符串才能获取变量 N。这意味着您不能使用已保存的 QueryDef,或者您必须编辑 QueryDef 的 SQL 并在使用它之前保存它。

关于asp.net - MS Access 错误 : The SELECT statement includes a reserved word or an argument name that is misspelled or missing, 或标点符号不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1133993/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com