我正在尝试使用HttpPut
在我的数据库中插入值,但我无法让它适用于多个参数。
// PUT: api/Orders/CustomerID/TableID
[HttpPut("{CustomerID,TableID}")]
public async Task<IActionResult> PutOrder([FromRoute] string CustomerID, [FromRoute] string TableID)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
try
{
string s = "INSERT INTO orders (CustomerID, TableID) VALUES (@CustomerID, @TableID)";
MySqlCommand command = new MySqlCommand(s, connection);
command.Parameters.AddWithValue("@CustomerID", CustomerID);
command.Parameters.AddWithValue("@TableID", TableID);
connection.Open();
command.ExecuteNonQuery();
}
catch
{ }
return NoContent();
}
}
有没有办法实现这一点?
好的,我想通了我做错了什么。
[HttpPut("{CustomerID}/{TableID}")]
public void PutOrder([FromRoute] string CustomerID, [FromRoute] string TableID)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
try
{
string s = "INSERT INTO orders (CustomerID, TableID) VALUES (@CustomerID, @TableID)";
MySqlCommand command = new MySqlCommand(s, connection);
command.Parameters.AddWithValue("@CustomerID", CustomerID);
command.Parameters.AddWithValue("@TableID", TableID);
connection.Open();
command.ExecuteNonQuery();
}
catch
{ }
}
}
为此调整了代码。
我错误地运行了POST而不是PUT(arrgghgh(。
现在它按预期工作!
定义属性路由。
[HttpPut]
[Route("api/Orders/{CustomerID}/{TableID}")]
public async Task<IActionResult> PutOrder([FromRoute] string CustomerID, [FromRoute] string TableID)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
try
{
string s = "INSERT INTO orders (CustomerID, TableID) VALUES (@CustomerID, @TableID)";
MySqlCommand command = new MySqlCommand(s, connection);
command.Parameters.AddWithValue("@CustomerID", CustomerID);
command.Parameters.AddWithValue("@TableID", TableID);
connection.Open();
command.ExecuteNonQuery();
}
catch
{ }
return NoContent();
}
}