使用参数对象[]作为参数的Web API调用

时间:2019-04-15 12:31:26

标签: c# api asp.net-core

是否可以使用params object []作为参数调用api

    [HttpGet("{procName}/{parametarList}")]
    public ActionResult<string> Get(string procName , params object[] parametarList)
    {
        string JSONString = string.Empty;

        using (var ado = new ADO())
        {

            var ds = ado.ExecuteAndReturnDS("execute " + procName " @0, @1, @2,@3,@4,@5", parametarList);

            JSONString = JsonConvert.SerializeObject(ds.Tables[0]);

            return new JsonResult(JSONString);

        }
    }

 public DataSet ExecuteAndReturnDS(string upit, params object[] parametri)
    {
        try
        {
            _Conn();

            command = new SqlCommand(upit, _Conn);

            command.CommandTimeout = 200;

            _ds = new DataSet();
            _sqlda = new SqlDataAdapter(command);

            for (int i = 0; i <= parametri.Count() - 1; i++)
            {
                if (parametri[i] == null)
                {
                    command.Parameters.AddWithValue("@" + i, DBNull.Value);
                }
                else
                {
                    command.Parameters.AddWithValue("@" + i, parametri[i]);
                }
            }

            _sqlda.Fill(_ds);

            if (_Conn.State == ConnectionState.Open)
            {
                _sqlda.Dispose();

                _Conn.Dispose();
                _Conn.Close();
            }

            return _ds;
        }
        catch (Exception ex)
        {
            return null;
        }
    }

赞这个 / api / values / myProcedure / param1 / param2 / param3 / param4 / etc /

1 个答案:

答案 0 :(得分:0)

我可以看到两种方法。

第一个是将参数列表作为字符串传入,然后在方法中将其拆分为对象数组。

下面是一个示例,您可以轻松地在C#中拆分字符串:https://docs.microsoft.com/en-us/dotnet/csharp/how-to/parse-strings-using-split

第二个是使用POST请求而不是GET请求,这将允许您传递更复杂的对象。