SQL 语句中的语法错误问题

Problem with Syntax Error in SQL statement

我正在尝试使用 C# 从 Access 数据库中获取特定的单个值。

出于某种原因,我要求的是给我一个例外

Syntax error in FROM clause

我不知道为什么。

我直接在 Access 中尝试了 运行 SQL,它工作正常并返回我想要的结果,但我不知道为什么它在我的程序中不起作用。

ProbID 是 Access 描述的数字字段,CorrDetails 是备注字段。

为简单起见,我已将 SQL 设置为查找特定值 (137),但是一旦我的代码正常工作,我就会将其参数化。

有什么想法吗?

string corrAct;
            OleDbConnection dbConnection;
            dbConnection = new OleDbConnection(vDbString);
            string sqlString = "SELECT CorrDetails FROM Action WHERE ProbID=137";
            OleDbCommand command = new OleDbCommand(sqlString, dbConnection);

            using (dbConnection)
            {

            MessageBox.Show(sqlString);
            dbConnection.Open();
            corrAct = (String)command.ExecuteScalar();
            rtfCorrectiveAction.Text = Convert.ToString(corrAct);
            dbConnection.Close();
            }

Action 是 MS Access 中的 reserved word。 用 []:

包裹起来
 string sqlString = "SELECT CorrDetails FROM [Action] WHERE ProbID=137";

问题是您没有考虑 SQL 中的关键字。 https://docs.microsoft.com/en-us/sql/odbc/reference/appendixes/reserved-keywords?view=sql-server-ver15

Action 是一个关键字,所以不应该在其他上下文中真正使用,要使用它们,请将 [] 围绕它们变成

select stuff from [Action] where stuff=true