title: MySqlCommand call function
body: <p>I am using the MySQL Connector.</p>
  
  <pre><code>using (MySqlConnection connection = new MySqlConnection("..."))
  {
      connection.Open();
      MySqlCommand command = new MySqlCommand();
      command.Connection = connection;
      command.CommandType = CommandType.StoredProcedure;
      command.CommandText = "FN_NEW";
      command.Parameters.AddWithValue("P_SESSION_ID", sessionId);
      command.Parameters.AddWithValue("P_NAME", deckName);
      object result = command.ExecuteScalar(); // returns NULL !!!!!!!!!
      return Json(result);
  }
  </code></pre>
  
  <p>For some reason the returned valus is null. Am I using the right CommandType?</p>
  
  <p>How I can call a MySQL function from .NET?</p>
  
  <p>The final working version is:</p>
  
  <pre><code>using (MySqlConnection connection = new    MySqlConnection(GetConnectionString().ConnectionString))
      {
          connection.Open();
          MySqlCommand command = new MySqlCommand();
          command.Connection = connection;
          command.CommandType = CommandType.StoredProcedure;
          command.CommandText = "FN_NEW";
          command.Parameters.AddWithValue("P_SESSION_ID", sessionId);
          command.Parameters.AddWithValue("P_NAME", deckName);
          MySqlParameter returnParam = command.Parameters.Add("@RETURN_VALUE", MySqlDbType.Int32);
          returnParam.Direction = System.Data.ParameterDirection.ReturnValue;            
          command.ExecuteNonQuery();
          NewDeckReturnCode result = (NewDeckReturnCode)returnParam.Value;
          return Json(result);
      }
  </code></pre>