在我的程序中,我连接到 Access 2010 数据库,从那里我使用 SQL 语句读取该查询中的前 30 条记录。我在阅读时遇到的问题是我收到错误消息:"Syntax error (missing operator) in query expression '* b_forte ORDER BY ProdDate DESC'"。我不能 100% 确定我的陈述中遗漏了什么,而且我在网上找不到解决方案。我正在使用的代码如下:
Public Sub CheckForRepeat()
Dim mydb As String
Dim mystr As String
Dim connection As OleDb.OleDbConnection
'Connection string to connect to database.
mystr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Forte\Fortedb.accdb"
connection = New OleDb.OleDbConnection(mystr)
'Opening database.
connection.Open()
'Select top 30 records from database organizing by the date, and line ID.
mydb = "SELECT TOP 30 * b_forte ORDER BY ProdDate DESC, BaleLine DESC"
'Will display the SQL statement if DisplayCode is checked off.
If GlobalVariables.DisplayCode = True Then
MainTextBox.AppendText(Environment.NewLine & mydb)
End If
Dim run = New OleDb.OleDbCommand
run = New OleDbCommand(mydb, connection)
'Executing the SQL statement.
run.ExecuteNonQuery()
connection.Close()
End Sub
错误消息在 处触发run.ExecuteNonQuery()
,我认为我的 SQL 语句中一定遗漏了一些东西。b_forte
, ProdDate
, 和BaleLine
在我的 Access 2010 数据库中都是有效的,并且连接字符串是正确的,因为我之前在我的代码中使用它来连接到同一个数据库。