【问题标题】:C# - OleDB Systax Error in From ClauseC# - From 子句中的 OleDB 语法错误
【发布时间】:2014-01-10 05:34:43
【问题描述】:

我正在使用 Microsoft Access 创建一个“桌面数据库”并将其作为“new.mdb”保存到我的 C# Debug 文件夹中。

但是,在使用 SELECT 语句时,我的 C# 项目会引发异常。

这是我的数据库

这是我的代码

   conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=new.mdb");
            conn.Open();
            dataset = new DataSet();
            string sqlStatement = "SELECT * FROM User";
            dbAdapter = new OleDbDataAdapter(sqlStatement, conn);
            oOrderDetailsCmdBuilder = new OleDbCommandBuilder(dbAdapter);
            dbAdapter.Fill(dataset);
            contactsTab = dataset.Tables[0];
            contactsTab.TableName = "User";
            rows = contactsTab.Rows;

执行该代码时的错误是

Syntax error in FROM clause.

但是,查询看起来不错。有什么问题吗?

谢谢!

编辑:

OleDbCommand.ExecuteNonQuery(示例:创建新表)适用于此。我不确定为什么 SELECT 语句没有:/

【问题讨论】:

    标签: c# sql ms-access oledb


    【解决方案1】:

    User 是 SQL 中的保留关键字。所以像下面这样写SQL

     string sqlStatement = "SELECT * FROM [User]";
    

    【讨论】:

    • 哇..简直不敢相信。作品!但我还有一个问题。所以如果我必须在这个问题中使用[],那么其他人呢?像contactsTab.TableName = "User"; 和插入新行DataRow uTabRow = dataset.Tables["User"].NewRow();。我也需要它们吗?
    • 用户只是 SQL 中的关键字。不在数据集中。每当编写 TSQL 语句时,都要检查这些关键字。上述错误来自 DB 而不是来自 c#。 @user2301818 如果我的回答对您有帮助,请标记为答案。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2019-04-20
    相关资源
    最近更新 更多