【问题标题】:Why would "SELECT * FROM user" throw a syntax error? [duplicate]为什么“SELECT * FROM user”会抛出语法错误? [复制]
【发布时间】:2015-05-24 15:31:08
【问题描述】:
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=CSTest.mdb";
String query = "SELECT * FROM user";

OleDbConnection connection = null;
try
{
    connection = new OleDbConnection(connectionString);
    connection.Open();
    log("Database Connected!");

    OleDbCommand test1 = new OleDbCommand(query, connection);
    OleDbDataReader test2 = test1.ExecuteReader();
    log(test2.ToString());
}
catch (OleDbException error)
{
    log("Something went wrong: " + error.Message);
}
finally
{
    connection.Close();
    log("Database Disconnected.");
}

输出:

Database Connected!
Error occurred: Syntax error in FROM clause.
Database Disconnected.

为什么我通过这么简单的查询得到了这个错误?我尝试在其末尾添加一个分号,但没有任何改变。 我正在使用 Visual Studio 2010 和 Access 数据库。 您认为问题与我刚刚安装的 Access 2013 Engine 有关吗?我的电脑上除了 OpenOffice 之外没有任何其他与办公相关的程序。

【问题讨论】:

  • 我已将问题的标题更新为您遇到的确切问题的具体摘要。这有助于人们知道你已经走了多远,很好地定义了问题(这总是有助于获得解决方案)并有助于提醒人们他们何时遇到过类似的问题。祝你好运!

标签: c# sql database ms-access syntax


【解决方案1】:

User是一个关键字,所以你应该用[]括起来

SELECT * FROM [user]

【讨论】:

  • 是的,但这不是基于异常消息的重点。
  • @SonerGönül 它在 FROM 子句中说错误..从它的表名中使用关键字 USER..所以我猜它可能是 pblm
  • 是的,它解决了我的问题……我真是个白痴。 tnks很多
  • @fabbroniko 你欢迎兄弟 :)
猜你喜欢
  • 2016-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-17
相关资源
最近更新 更多