I'm getting an error: Syntax error (missing operator) in query expression in vb

I'm getting an error: Syntax error (missing operator) in query expression in vb

这是SQL。

dtaadpResult.SelectCommand.CommandText = " SELECT * FROM tblResult WHERE EventID =" & EventID(Counter1) & " AND ORDER BY Time DESCENDING"

当我尝试填充数据集时发生这种情况。

dtaadpResult.Fill(dtasetSD, "tblResult")

我正在使用 MS access,是否要添加括号?我该怎么做。

您的代码可能容易受到 SQL 注入攻击。使用参数而不是字符串连接。

排除强制性警告,格式化后查看您的查询文本:

SELECT
    *
FROM
    tblResult
WHERE
    EventID = @eventId
    AND
ORDER BY
    Time DESCENDING

问题是你有一个 AND 语句后跟 ORDER BY,而你应该有一个谓词子句。

添加另一个子句,或删除 AND 运算符关键字。

另外,更多提示:

  1. 避免使用匈牙利语表示法并考虑对 table 名称使用复数形式(即使用 Results 而不是 tblResult
  2. 代码中嵌入的长行 SQL 难以阅读,请考虑格式化您的 SQL 并改用多行字符串。
  3. 使用参数化查询,而不是字符串连接生成SQL
  4. 如果你正在执行一个 SELECT 查询并将它传递给一个 DataAdapter 只是为了填充一个 DataTableDataSet 你在浪费内存并且 CPU 周期,而不是使用 DataReader:它更快(并且内存开销要低得多)。