Я посмотрел на подобные темы без удачи, мне кажется, что я все делаю правильно, но база данных просто не обновляется.
Моя функция, как показано ниже, имеет значения параметров 1, «Коннор Смит», 5, «Новый» соответственно
[HttpPost, ValidateAntiForgeryToken]
public ActionResult UpdateDevelopmentRequest(int changeID, string evaluator, int priority, string status)
{
SqlCommand cmd = new SqlCommand(StoredProcedures.DevRequests.UpdateDevRequest, Conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@changeID", SqlDbType.Int).Value = changeID;
cmd.Parameters.Add("@evaluator", SqlDbType.NVarChar, 30).Value = evaluator;
cmd.Parameters.Add("@priority", SqlDbType.Int).Value = priority;
cmd.Parameters.Add("@status", SqlDbType.NVarChar, 15).Value = status;
//cmd.Parameters.AddWithValue("@changeID", changeID);
//cmd.Parameters.AddWithValue("@evaluator", evaluator);
//cmd.Parameters.AddWithValue("@priority", priority);
//cmd.Parameters.AddWithValue("@status", status);
Conn.Open();
cmd.ExecuteNonQuery();
Conn.Close();
return RedirectToAction("DevelopmentRequests");
}
Моя хранимая процедура имеет следующий вид
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sp_UpdateDevRequests]
@changeID INT,
@evaluator NVARCHAR(30),
@priority INT,
@status NVARCHAR(15)
AS
UPDATE it_ChangeRequest
SET it_ChangeRequest.Evaluator = @evaluator,
it_ChangeRequest.Status = @status,
it_ChangeRequest.Priority = @priority
WHERE ChangeID = @changeID
Помимо кода и хранимой процедуры, как показано, я попытался добавить
int result = cmd.ExecuteNonQuery();
, который возвращал 1, когда значения были правильными, и 0, когда они были неправильными (я ожидаю только 1 строку быть измененным). Я также запустил запрос отдельно, жестко запрограммировав значения, например, Declare @changeID int = 1
, и запрос также работал с этим методом.
Я был озадачен этим все утро и был бы признателен за помощь
e: Я также попытался установить хранимую процедуру на priority = 2
вместо priority = @priority
, чтобы убедиться, что она указана и при обновлении ожидаемой БД все работало как положено