[英]Mysql delimiter syntax error only get error on c#
I have create procedure code.我已经创建了程序代码。 When I try run create procedure codes in phpmyadmin, it is works.
当我尝试在 phpmyadmin 中运行创建过程代码时,它是有效的。 But when I try run in c#, it is return error like that:
但是当我尝试在 c# 中运行时,它是这样的返回错误:
You have an error in your SQL syntax;
您的 SQL 语法有错误; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER !!
检查与您的 MySQL 服务器版本相对应的手册,了解在“DELIMITER !!”附近使用的正确语法。
Create Procedure Code:创建程序代码:
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 ;
How can I fix it?我该如何解决?
You can't use the DELIMITER ;;
您不能使用
DELIMITER ;;
syntax with MySqlCommand
in C#.在 C# 中使用
MySqlCommand
语法。 Instead, just use the body of the CREATE PROCEDURE
statement as the MySqlCommand.CommandText
and execute it:相反,只需将
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();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.