mysql分隔符语法错误仅在c上获取错误#

czfnxgou  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(364)

我已经创建了程序代码。当我尝试在phpmyadmin中运行create过程代码时,它是有效的。但当我试着在c#中运行时,返回错误如下:
sql语法有错误;请查看与您的mysql服务器版本对应的手册,以了解使用“delimiter!”附近的正确语法!!
创建过程代码:

DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_alldoctorname`(IN `p_doktor` VARCHAR(65) CHARSET latin5, IN `p_eski` VARCHAR(65) CHARSET latin5)
    NO SQL
    BEGIN
UPDATE users SET hekim=p_doktor WHERE hekim=p_eski;
UPDATE tedavi SET tedavi_doktor=p_doktor WHERE tedavi_doktor=p_eski;
UPDATE medikal SET doktor=p_doktor WHERE doktor=p_eski;
UPDATE cek_devreden SET unvan=p_doktor WHERE unvan=p_eski;
END
;;
DELIMITER ;

我该怎么修?

1sbrub3j

1sbrub3j1#

你不能使用 DELIMITER ;; 语法 MySqlCommand 在c#。相反,只需使用 CREATE PROCEDURE 声明为 MySqlCommand.CommandText 并执行:

using (var command = yourConnection.CreateCommand())
{
    command.CommandText = @"CREATE DEFINER=`root`@`localhost` PROCEDURE `update_alldoctorname`(IN `p_doktor` VARCHAR(65) CHARSET latin5, IN `p_eski` VARCHAR(65) CHARSET latin5)
    NO SQL
    BEGIN
        UPDATE users SET hekim=p_doktor WHERE hekim=p_eski;
        UPDATE tedavi SET tedavi_doktor=p_doktor WHERE tedavi_doktor=p_eski;
        UPDATE medikal SET doktor=p_doktor WHERE doktor=p_eski;
        UPDATE cek_devreden SET unvan=p_doktor WHERE unvan=p_eski;
    END";
    command.ExecuteNonQuery();
}

相关问题