Синтаксическая ошибка Mysql Delimiter только получить ошибку на C # - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть код процедуры создания. Когда я пытаюсь запустить создание процедурных кодов в phpmyadmin, это работает. Но когда я пытаюсь запустить в 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 ;

Как я могу это исправить?

1 Ответ

0 голосов
/ 06 ноября 2018

Вы не можете использовать синтаксис 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...