C#,MySQL,ADO.NET,分隔符导致语法错误

C#,MySQL,ADO.NET,分隔符导致语法错误,第1张

概述我有C#代码循环.sql文件并执行其中的内容来设置数据库. 一个.sql文件基本如下: DROP PROCEDURE IF EXISTS myProc;DELIMITER $$CREATE PROCEDURE myProc()BEGIN-- procedure stuff goes hereEND $$DELIMITER ;CALL myProc(); 当我将它输入到MySQ 我有C#代码循环.sql文件并执行其中的内容来设置数据库.

一个.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,分隔符导致语法错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存