一个.sql文件基本如下:
DROP PROCEDURE IF EXISTS myProc;DEliMITER $$CREATE PROCEDURE myProc()BEGIN-- procedure stuff goes hereEND $$DEliMITER ;CALL myProc();
当我将它输入到MySQL查询浏览器的脚本窗口时,它会一遍又一遍地运行,就像人们希望的那样.
但是,如果我将字符串放入我的IDbCommand并执行它…
connection.open(); // An IDbConnectionIDbTransaction 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 ……
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 ‘DEliMITER $$CREATE PROCEDURE myProc() BEGIN…
所以,问题是……为什么MysqL让我这样做没有问题,但是当我尝试从C#运行它时,它失败了?当然第二个问题是我应该如何修复它.
解决方法 我想你要找的是: “Bug #46429: use DELIMITER command in MySql.Data.MySqlClient.MySqlScript” 总结以上是内存溢出为你收集整理的C#,MySQL,ADO.NET,分隔符导致语法错误全部内容,希望文章能够帮你解决C#,MySQL,ADO.NET,分隔符导致语法错误所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)