SQL 语句末尾的字符--Access 数据库
Posted
技术标签:
【中文标题】SQL 语句末尾的字符--Access 数据库【英文标题】:Characters Found at the end of SQL Statement -- Access Database 【发布时间】:2016-05-24 14:08:51 【问题描述】:我正在使用具有访问数据库的 Windows 应用程序。我正在使用OleDbTransaction
和其他类插入记录。
当我运行我的代码时,我收到错误消息:
SQL 语句末尾的字符
我在一个事务中插入 10 条记录。它不允许我在单个事务中插入同一个表的多个插入语句。在访问中我们不能使用同一张表的多个插入语句有什么缺点吗?
下面是我的代码块:
strQueries 是一个字典,其中包含由分号(;)分隔的插入语句的集合
oleDbTran = accessDbConnection.BeginTransaction();
cmdReturnValue.Transaction = oleDbTran;
foreach (var query in strQueries)
cmdReturnValue.CommandText = query.Value.ToString();
cmdReturnValue.ExecuteNonQuery();
oleDbTran.Commit();
【问题讨论】:
如果您需要我们的帮助,您真的应该发布您的 SQL 语句 如果我没记错的话,Access 将您限制为每次调用一个语句。要对此进行测试,您可以尝试直接在 Access 数据库中运行一些 INSERT(即使用 MS Access)。 为什么不在一个插入语句中将 10 行插入到同一个表中?INSERT INTO TABLE(...) VALUES (...), (...), (...)
谢谢大家。非常感谢您的回复。 @ Juharr,你能给我提供一个相同的查询示例吗?
您的代码是否使用 2 个 INSERT
语句而不是 10 个语句?如果不是,请向我们展示这 2 个语句中的文本。
【参考方案1】:
INSERT INTO TABLE(...) 值 (...), (...), (...)
这不是可接受的 Access (Jet) SQL 语法。它是什么,mysql?反正。如果您需要此语法,因为您已使用支持此语法的 ODBC 将前端(Access 应用程序)连接到后端(包含您的数据的数据库),您可以考虑使用pass-through queries。 Access 不会试图解释这些;相反,它将按原样发送到后端。
【讨论】:
以上是关于SQL 语句末尾的字符--Access 数据库的主要内容,如果未能解决你的问题,请参考以下文章
来自 Access 的 Excel VBA SQL 没有结果