必须定义参数'@s'

时间:2013-03-12 04:18:48

标签: c# mysql database procedure

我在自定义操作中运行脚本时遇到问题。该脚本在localhost MySQL服务器中创建并设置数据库。

具体地说,我的一个程序有问题:

DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `UpdateAutoInc`(IN `increment` BIGINT) 
BEGIN
SET @s = concat('ALTER TABLE tblactionservices AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
SET @s = concat('ALTER TABLE tblbannedclient AUTO_INCREMENT ',increment);
PREPARE stmt FROM @s;
EXECUTE stmt;
END$$
DELIMITER ;

在脚本中,在此过程之前,我还有其他两个完美运行的过程。

我安装应用程序时遇到的错误是"参数' @ s'必须定义"。寻找互联网我找到了blog,但我添加了"允许用户变量=真;"没有运气。使用这段文本,脚本直接在第一个过程崩溃。实际上,无论发现什么(程序,表......),它总会崩溃。我得到的错误绝对无用"您的SQL语法中有错误;检查手册bla bla",所以我找不到问题。

这是我用来从c#运行脚本的课程:

private void ExecuteSql(string DatabaseName, string Sql)
        {
        MySqlConnection connection = new MySqlConnection { ConnectionString = "server=127.0.0.1;User Id=root" };
        MySqlCommand command = new MySqlCommand(Sql, connection);

        command.Connection.Close();
        command.Connection.Open();

        try
        {
            command.ExecuteNonQuery();

        }
        finally
        {
            // Closing the connection should be done in a Finally block
            command.Connection.Close();
        }
    }

脚本未手动输入,但是它是从PhPMyAdmin自动生成的。 MySQL服务器的版本是5.5,连接器版本是6.5.5.0

0 个答案:

没有答案