C# Mysql分隔符语法错误仅在c上获取错误
我已经创建了程序代码。当我尝试在phpmyadmin中运行create过程代码时,它是有效的。但当我尝试在c中运行时,返回的错误如下: 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,了解使用“DELIMITER!”附近的正确语法 创建过程代码: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
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();
}
如果你能提供一个。可能的副本,那就太棒了