c# - SQL语句中语法错误的问题

标签 c# ms-access ado.net

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

出于某种原因,我要求的是给我一个异常(exception)

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();
            }

最佳答案

Actionreserved word在 MS Access 中。 用[]包裹它:

 string sqlString = "SELECT CorrDetails FROM [Action] WHERE ProbID=137";

关于c# - SQL语句中语法错误的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58623303/

相关文章:

c# - 将新数据附加到现有的 JSON 文件

c# - 从 .NET Core 运行 PowerShell

连接两个表的前缀和非前缀字段的 SQL 查询

SQL 查询根据多个日期列返回最近的记录更新(棘手?)

c# - 如何在单个 SQL 连接中运行多个 SQL 命令?

c# - 拆分长文件的最佳方法。编程还是 SQL?

c# - 从 html 字符串匹配电子邮件正则表达式

c# - TDD - 想用一个假的存储库测试我的服务层,但是如何?

sql - 如何将 accdb 转换为 postgres 数据库

c# - 即使在为操作设置超时属性后超时异常