MySQL/ c#存储过程没有返回值

本文关键字:返回值 存储过程 MySQL | 更新日期: 2023-09-27 18:06:17

我一直很难从存储过程返回值给c#应用程序。这个过程在MySql工作台中返回一个值,而不是c#。在c#输出中没有显示任何值。下面包括我调用的过程和方法:

            /*
            CREATE PROCEDURE `proc_FindChildID` (OUT CID VARCHAR(6))  
            BEGIN  
                SELECT MAX(ChildID) INTO @CID FROM Child;
                SET @CID = SUBSTRING(@CID FROM 1); 
                SELECT @CID;
            END //
            */
            public bool callProcedure()
            {
                if (this.OpenConnection() == true)
                {
                    MySqlCommand command = connection.CreateCommand();
                        command.CommandType = CommandType.StoredProcedure;
                        command.CommandText = "proc_FindChildID";
                        command.Parameters.Add(new MySqlParameter("@CID", MySqlDbType.VarChar, 6));
                        command.Parameters["@CID"].Direction = ParameterDirection.Output;
                        command.ExecuteNonQuery();
                        string t_return = command.Parameters["@CID"].Value.ToString();
                        Console.WriteLine("ID:" + t_return);
                    this.CloseConnection();
                    return true;
                }
                else
                {
                    return false;
                }
            }

MySQL/ c#存储过程没有返回值

我不知道MySqlCommand,但通常如果是MSSQL,我会调用object o = command.ExecuteScalar();而不是command.ExecuteNonQuery();来获取值