Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Mysql分隔符语法错误仅在c上获取错误_C#_Mysql_Phpmyadmin - Fatal编程技术网

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

C# Mysql分隔符语法错误仅在c上获取错误,c#,mysql,phpmyadmin,C#,Mysql,Phpmyadmin,我已经创建了程序代码。当我尝试在phpmyadmin中运行create过程代码时,它是有效的。但当我尝试在c中运行时,返回的错误如下: 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解使用“DELIMITER!”附近的正确语法 创建过程代码: DELIMITER ;; CREATE DEFINER=`root`@`localhost` PROCEDURE `update_alldoctorname`(IN `p_doktor` VARCHAR(65) CHARSET lati

我已经创建了程序代码。当我尝试在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 ;
如何修复它?

您不能使用分隔符;;在C中使用MySqlCommand进行语法。相反,只需使用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();
}

如果你能提供一个。可能的副本,那就太棒了