0

ストアド プロシージャから 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;
                }
            }
4

1 に答える 1

3

MySqlCommand はわかりませんが、通常、MSSQL の場合は、値を取得するobject o = command.ExecuteScalar();代わりに呼び出します。command.ExecuteNonQuery();

于 2013-03-27T23:15:48.203 に答える