【问题标题】:Delete data from datatable via AJAX call通过 AJAX 调用从数据表中删除数据
【发布时间】:2017-06-08 12:43:07
【问题描述】:

我有一个视图,我有 AJAX 调用

这里是 AJAX 请求的代码,只是后端的 hit 方法:

<script>
// deleting
$("#send").click(
    function sender() {
        $.ajax({
            contentType: 'application/json; charset=utf-8',
            type: 'Post',
            dataType: 'json',
            processData: false,
            url: '@Url.Action("DeleteAll", "Questions")',
            success: function(da) {
                if (da.Result === "Success") {

                    alert("Data deleted!");

                } else {

                    alert('Error' + da.Message);
                }
            },
            error: function(da) {
                alert('Error');
            }
        });
    });

后端的方法

public ActionResult DeleteAll()
{
    ApplicationDbContext context =  new ApplicationDbContext();
    List<InvitationMail> query = context.InvitationMails.ToList();
    foreach (InvitationMail q in query)
    {
        context.DeleteObject(q);
    }
    context.SaveChanges();
    return Json(new {Result = "Success", Message = "Saved Successfully"});
}

但是我有这个错误

我需要从InvitationMail 表中删除所有数据,我该怎么做?

【问题讨论】:

标签: c# jquery asp.net ajax asp.net-mvc


【解决方案1】:

使用Removerange 函数它的工作速度比foreach 快得多:

List<InvitationMail> query = context.InvitationMails.ToList();
context.InvitationMails.Removerange(query); 
context.SaveChanges();

【讨论】:

    【解决方案2】:

    为什么不使用TRUNCATE TABLE这样的SQL命令:

    context.Database.ExecuteSqlCommand("TRUNCATE TABLE InvitationMail");
    

    【讨论】:

      【解决方案3】:

      DbContext 不包含DeleteObject() 方法,但您可以使用Remove() 方法。像这样的:

      foreach (InvitationMail q in query)
      {
          context.InvitationMails.Remove(q); 
      }
      
      context.SaveChanges();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-30
        • 2015-11-20
        • 2014-11-23
        相关资源
        最近更新 更多