删除 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

删除 mvc 中的行

除了@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# 中将参数传递给存储过程