C# - From 子句中的 OleDB 语法错误
Posted
技术标签:
【中文标题】C# - From 子句中的 OleDB 语法错误【英文标题】:C# - OleDB Systax Error in From Clause 【发布时间】: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 语句没有:/
【问题讨论】:
【参考方案1】:User 是 SQL 中的保留关键字。所以像下面这样写SQL
string sqlStatement = "SELECT * FROM [User]";
【讨论】:
哇..简直不敢相信。作品!但我还有一个问题。所以如果我必须在这个问题中使用[]
,那么其他人呢?像contactsTab.TableName = "User";
和插入新行DataRow uTabRow = dataset.Tables["User"].NewRow();
。我也需要它们吗?
用户只是 SQL 中的关键字。不在数据集中。每当编写 TSQL 语句时,都要检查这些关键字。上述错误来自 DB 而不是来自 c#。 @user2301818 如果我的回答对您有帮助,请标记为答案。谢谢以上是关于C# - From 子句中的 OleDB 语法错误的主要内容,如果未能解决你的问题,请参考以下文章