代码之家  ›  专栏  ›  技术社区  ›  Gad D Lord

MySqlCommand调用函数

  •  3
  • Gad D Lord  · 技术社区  · 16 年前

    我正在使用MySQL连接器。

    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);
    }
    

    由于某些原因,返回的值为空。我使用的命令类型正确吗?

    最终工作版本为:

    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);
        }
    
    1 回复  |  直到 16 年前
        1
  •  5
  •   Chris Baxter    16 年前

    向命令中添加一个附加参数,参数方向为:

    System.Data.ParameterDirection.ReturnValue;
    

    使用

    command.ExecuteNonQuery(); 
    

    然后在调用ExecuteNonQuery后从return value参数中检索返回值。

    推荐文章