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
运算符关键字。
另外,更多提示:
- 避免使用匈牙利语表示法并考虑对 table 名称使用复数形式(即使用
Results
而不是 tblResult
。
- 代码中嵌入的长行 SQL 难以阅读,请考虑格式化您的 SQL 并改用多行字符串。
- 使用参数化查询,而不是字符串连接生成SQL
- 如果你正在执行一个
SELECT
查询并将它传递给一个 DataAdapter
只是为了填充一个 DataTable
或 DataSet
你在浪费内存并且 CPU 周期,而不是使用 DataReader
:它更快(并且内存开销要低得多)。
这是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
运算符关键字。
另外,更多提示:
- 避免使用匈牙利语表示法并考虑对 table 名称使用复数形式(即使用
Results
而不是tblResult
。 - 代码中嵌入的长行 SQL 难以阅读,请考虑格式化您的 SQL 并改用多行字符串。
- 使用参数化查询,而不是字符串连接生成SQL
- 如果你正在执行一个
SELECT
查询并将它传递给一个DataAdapter
只是为了填充一个DataTable
或DataSet
你在浪费内存并且 CPU 周期,而不是使用DataReader
:它更快(并且内存开销要低得多)。