c# - 单个 ODBC ExecuteNonQuery 中的多个插入语句 (C#)

标签 c# mysql odbc

我正在将多行插入数据库,并将它们连接在一起以尝试提高性能。 我收到 ODBCException 告诉我 SQL 语法错误。但是当我在 mysql 命令行客户端中尝试它时,它工作得很好。 我运行了一个简化的测试来描述该过程。

命令行客户端:


mysql> create table test (`id` int, `name` text);
Query OK, 0 rows affected (0.05 sec)

mysql> INSERT INTO test(id, name) VALUES ('1', 'Foo');INSERT INTO test(id, name) VALUES ('2', 'bar');
Query OK, 1 row affected (0.00 sec)

Query OK, 1 row affected (0.00 sec)

mysql>

之后我在同一个数据库上运行此代码:


comm.CommandText = "INSERT INTO test(id, name) VALUES ('1', 'Foo');INSERT INTO test(id, name) VALUES ('2', 'bar');";
comm.ExecuteNonQuery();

这给了我以下错误:


+       base    {"ERROR [42000] [MySQL][ODBC 5.1 Driver][mysqld-5.1.51-community]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT INTO test(id, name) VALUES ('2', 'bar')' at line 1"} System.Data.Common.DbException {System.Data.Odbc.OdbcException}

最佳答案

MySQL ODBC 驱动程序 v5+ 实际上支持批处理,您只需单击 ODBC 控制面板的“详细信息”按钮(如果在 Windows 上)并选中“允许多个语句”复选框。

或者,在 odbc 连接字符串上使用 OPTIONS=67108864。

更多信息请点击:http://dev.mysql.com/doc/refman/5.0/en/connector-odbc-configuration-connection-parameters.html

关于c# - 单个 ODBC ExecuteNonQuery 中的多个插入语句 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46420557/

相关文章:

Python pypyodbc 如何将变量插入到执行语句中?

java - Informix CSDK 安装失败

c# - 使用 linq 或 IEnumerable 将数组转换为并发字典的任何更好方法?

java - 将百分比放入MySQL数据库

python - 在 Python 中使用 MySQLdb 进行 Windows 身份验证

php - 与 wamp 相比,服务器上的内存使用率较高

c# - SqlDataReader,一个流水游标——没有缓冲?

c# - 在 C# 和 javascript 中避免重复代码的任何想法

c# 根据当前日期获取开始日期和最后日期

c# - 文件浏览器 TreeView MVVM