我尝试使用OleDbCommand将SQL查询创建到Access数据库(.accdb)中。
虽然此命令正常(在OleDbCommand.ExecuteReader()
中):
string command =
"SELECT cred.* " +
"FROM TB_CREDENTIALS cred " +
"INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID ";
这个没有,我无法理解为什么(我看到的所有例子都使用完全相同的语法):
string command =
"SELECT cred.* " +
"FROM TB_CREDENTIALS cred " +
"INNER JOIN TB_REL_USERS_CREDENTIALS rel ON cred.CRED_ID = rel.REL_USR_CRED_CRED_ID " +
"INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_ID ";
给出的例外是以下System.Data.OleDb.OleDbException
:
查询表达式中的语法错误(缺少运算符)' cred.CRED_ID = rel.REL_USR_CRED_CRED_ID INNER JOIN TB_USERS usr ON usr.USR_ID = rel.REL_USR_CRED_USER_I'
(message is cut here)
版本和细节:
.accdb
文件System.Data.OleDb.OleDbConnection
"Microsoft.ACE.OLEDB.12.0"
(这似乎是一个无用的查询,但我当然会添加WHERE usr.SOME_FIELD = some_condition
)