是否可以使用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 /
答案 0 :(得分:0)
我可以看到两种方法。
第一个是将参数列表作为字符串传入,然后在方法中将其拆分为对象数组。
下面是一个示例,您可以轻松地在C#中拆分字符串:https://docs.microsoft.com/en-us/dotnet/csharp/how-to/parse-strings-using-split
第二个是使用POST请求而不是GET请求,这将允许您传递更复杂的对象。