【问题标题】:MySQL/C# Stored Procedure Not Returning ValueMySQL/C# 存储过程不返回值
【发布时间】:2013-03-18 06:29:46
【问题描述】:

我一直难以将值从存储过程返回到 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;
                }
            }

【问题讨论】:

    标签: c# mysql stored-procedures


    【解决方案1】:

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

    【讨论】:

    • 您先生是个天才!这解决了我的问题。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    相关资源
    最近更新 更多