[英]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.