繁体   English   中英

如何在c#中删除数据库中的记录

[英]how to delete records from database in c#

这是我的代码:

private void button1_Click(object sender, EventArgs e){
    int index = dataGridView1.CurrentCell.RowIndex;

    Model1.DevicesInfo_Tbl Device_Info_Obj = new Model1.DevicesInfo_Tbl();

    Device_Info_Obj.DevicesName.Remove(index, index);

    E_Shop_DB_Obj.SaveChanges();
    dataGridView1.Refresh();
}

我无法理解我的代码错在哪里。 到达Device_Info_Obj.DevicesName.Remove(index, index);时,编译器出错了Device_Info_Obj.DevicesName.Remove(index, index); 我该如何解决? 我想删除数据库中的选定行。

这个问题已经很模糊了,但是你命名对象的方式并没有让它变得更好。

我假设E_Shop_DB_Obj是您的数据库上下文。 您想要从表DevicesInfo_Tbl中删除一个对象。 看起来,DevicesName是表中的字段(字符串类型)。

你现在正在做的是从字段(字符串类型)Device_Info_Obj.DevicesName中删除字符。 由于您创建了Device_Info_Obj,因此似乎DevicesName为null。 这就是你得到NullReference异常的原因。

无论如何,要删除对象,您需要从上下文中删除对象:

        using (var E_Shop_DB_Obj = new Model())
        {
            var item = E_Shop_DB_Obj.DevicesInfo_Tbl.FirstOrDefault(a => a.Id == index);
            // Test if item is not null
            E_Shop_DB_Obj.DevicesInfo_Tbl.Remove(item);
            E_Shop_DB_Obj.SaveChanges();
        }

您必须先找到具有键值的对象,然后才能将其删除

var item = E_Shop_DB_Obj.DevicesInfo_Tbl.Find(index);//ASSUMING index IS THE KEY
E_Shop_DB_Obj.DevicesInfo_Tbl.Remove(item);
E_Shop_DB_Obj.SaveChanges();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM