【发布时间】:2021-05-21 08:07:31
【问题描述】:
我正在使用视图网格(MVC ASP.NET 和 C#),每次我为特定行单击 EDIT BUTTON 时,所有这些信息都会显示在不同的页面中,然后,我可以修改我想要的任何内容并保存更改。
问题是我想存储最初出现在编辑页面中的值以及新值,因为我想触发存储过程并将所有值作为参数传递(旧值和新值) .你明白我的意思吗? 举个例子:
这是我的控制器代码:
public ActionResult Edit(int id)
{
User user = dbContext.GetUserById(id);
return View(user);
}
// POST: User/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit(int id, [Bind] User user)
{
try
{
if (ModelState.IsValid)
{
dbContext.UpdateUser(user);
return RedirectToAction("Index");
}
return View(dbContext);
}
catch
{
return View();
}
}
这就是我的 UpdateUser 函数的作用:
public void UpdateUser(User User)
{
using (SqlConnection con = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand("UPDATE_USER", con)
{
CommandType = System.Data.CommandType.StoredProcedure
};
cmd.Parameters.AddWithValue("@NAME", user.NAME);
cmd.Parameters.AddWithValue("@LASTNAME", user.LASTNAME);
cmd.Parameters.AddWithValue("@CODE", user.CODE);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
}
编辑: 这是我的存储过程:
CREATE PROCEDURE UPDATE_USER
(
@NAME varchar(255) = '',
@LASTNAME varchar(255) = '',
@CODE varchar(255) = '',
)
AS
BEGIN
UPDATE MAPPINGTABLE
SET NAME= @NAME,
LASTNAME= @LASTNAME,
CODE= @CODE
WHERE CODE= @CODE;
END
GO
我想传递所有以前单击编辑时出现的值,我的意思是:我应该创建 3 个新参数,称为: OLD_NAME、OLD_LASTNAME、OLD_CODE。
【问题讨论】:
标签: c# sql asp.net-mvc gridview datagrid