2013-03-27 131 views
0

我一直無法從存儲過程向C#應用程序返回值。該過程在MySql工作臺中返回一個值,但不是C#。在C#輸出中沒有值被顯示。下面的過程和方法調用我下面包括:MySQL/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; 
       } 
      } 

回答

3

我不知道的MySqlCommand但通常如果是MSSQL我會叫object o = command.ExecuteScalar();而不是command.ExecuteNonQuery();來獲取值。

+0

你先生是個天才!這解決了我的問題。非常感謝你! – apoclyps 2013-03-27 23:31:59

+0

標記爲答案,如果它解決了:)不客氣 – Xelom 2013-03-27 23:55:50