C#,MySQL,ADO.NET,分隔符导致语法错误
发布时间:2020-12-15 08:12:24 所属栏目:百科 来源:网络整理
导读:我有C#代码循环.sql文件并执行其中的内容来设置数据库. 一个.sql文件基本如下: DROP PROCEDURE IF EXISTS myProc;DELIMITER $$CREATE PROCEDURE myProc()BEGIN-- procedure stuff goes hereEND $$DELIMITER ;CALL myProc(); 当我将它输入到MySQL查询浏览器
我有C#代码循环.sql文件并执行其中的内容来设置数据库.
一个.sql文件基本如下: DROP PROCEDURE IF EXISTS myProc; DELIMITER $$ CREATE PROCEDURE myProc() BEGIN -- procedure stuff goes here END $$ DELIMITER ; CALL myProc(); 当我将它输入到MySQL查询浏览器的脚本窗口时,它会一遍又一遍地运行,就像人们希望的那样. 但是,如果我将字符串放入我的IDbCommand并执行它… connection.Open(); // An IDbConnection IDbTransaction transaction = connection.BeginTransaction(); using (IDbCommand cmd = connection.CreateCommand()) { cmd.Connection = connection; cmd.Transaction = transaction; cmd.CommandText = line; cmd.CommandType = CommandType.Text; try { cmd.ExecuteNonQuery(); } catch (SqlException ex) { transaction.Rollback(); return false; } } transaction.Commit(); connection.Close(); ……我得到了可怕的例外1064 ……
所以,问题是……为什么MySQL让我这样做没有问题,但是当我尝试从C#运行它时,它失败了?当然第二个问题是我应该如何修复它. 解决方法
我想你要找的是:
“Bug #46429: use DELIMITER command in MySql.Data.MySqlClient.MySqlScript”
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |