删除 mvc 中的行
本文关键字:mvc 删除 | 更新日期: 2023-09-27 18:32:51
嗨,我无法在 MVC 中删除一行,如果我尝试删除一行,整行都会被删除。这是我的删除方法
public string DeleteRegistrationForm(int ID)
{
string Msg = null;
Database database = DatabaseFactory.CreateDatabase();
DataSet ds = new DataSet();
// List<Registrationform> results = new List<Registrationform>();
try
{
string str = "DeleteStudentDetails";
DbCommand storedProcCommand = database.GetStoredProcCommand(str);
ds = database.ExecuteDataSet(storedProcCommand);
ds.GetChanges();
Msg = "DeleteOperationSuccessful";
// ds.delete("id = ID");
// results = ds.Tables[0].AsEnumerable()
// .Select(row => new Registrationform
// {
// Id = 0,
// Name = null,
// Age = 0,
// EMailId = null,
// phNumber = null)
// }).ToList();
}
catch
{
Msg = "DeleteOperationFailed";
}
return Msg;
}
这是我的存储过程
ALTER procedure [dbo].[DeleteStudentDetails]
as
begin
delete from Registrationform
where ID = ID
end
除了@Jezzabeanz答案之外,您还需要编辑您的程序。查询中的WHERE ID=ID
部分始终为 true,并且始终删除所有记录。
首先,更改存储的过程以包含参数。
ALTER procedure [dbo].[DeleteStudentDetails](@ID INT)
as begin
delete from Registrationform where ID=@ID
end
然后包括@Jezzabeanz答案,以实现您的需求。希望这有帮助。
在执行存储过程之前,需要添加一个参数。我以前从未见过它以你的方式完成。以下代码是一个粗略的示例,未经测试。
DbCommand storedProcCommand = database.GetStoredProcCommand(str);
storedProcCommand.Parameters.Add("@ID", SqlDbType.Int).Value = ID;
详细信息:在 C# 中将参数传递给存储过程