删除数据
开发工具与关键技术:web
作者:熊琪
撰写时间:2019.06.16
删除数据对应的就是将数据库对应表中数据删除,具体删除哪条数据就还得看具体操作,首先通过开发工具Vs引入models,引入的目的就是将删除时的表与数据库同步。
删除也有好几种,单表的单条删除,单表的多条删除,多表的单条删除,和多表的单条删除等,不同之处就是获取的数据条数与删除时牵扯的表的个数不同罢了。
首先页面上得获取选中的数据信息,牵扯到layuiTable,因为这里是从layui表格中删除数据,所以需要点击需要删除的数据然后删除,期间获取到需要删除数据的ID。一般的删除都会跟操作者交互一下,所以看代码图:
saveDelete 是删除的onclick的事件,意思就是点击后执行事件内的删除代码,checkStatu,(检查状态)可获取到具体的信息,判断,声明的chckStatu中的数据长度不等于0,如果当你没有选中某条数据时checkStatu中肯定是没有数据的所以else中就提示“请选择数据”,当选择到了数据时还的让用户确认要删除的数据,从而达到了与用户交互的目的。接着post请求最终的控制器删除方法,所以DeleteCommodity是控制器的方法名。
控制器部分判断与移除代码:
int commoditydetailId = Convert.ToInt32(CommodityDetailID);
int intCommodityRow = (from tbSellDetail in myModels.D_SellDetail
where tbSellDetail.CommodityDetailID == commoditydetailId
select tbSellDetail).Count();
if(intCommodityRow > 0)
{
returnJson.State = false;
returnJson.Text = "该商品已经发生过销售交易,所以不能删除!";
return Json(returnJson, JsonRequestBehavior.AllowGet);
}
D_CommodityDetail dbcommoditydetail = (from tbCommodityDetail in myModels.D_CommodityDetail
where tbCommodityDetail.CommodityDetailID == commoditydetailId
select tbCommodityDetail).Single();
var commodityID = dbcommoditydetail.CommodityID;
B_Commodity dbCommodity = (from tbCommodity in myModels.B_Commodity
where tbCommodity.CommodityID == commodityID
select tbCommodity).Single();
myModels.B_Commodity.Remove(dbCommodity);
myModels.D_CommodityDetail.Remove(dbcommoditydetail);
首先判断的是销售表中是否有商品明细的ID,如果有就证明对应的商品发生过交易就不能删除,用封装好的Text提示“该选择的商品发生过交易,所以不能删除”。在写方法之前是要声明接收页面数据的参数的,这里接收的是视图传过来的ID。删除前的操作就是将需要删除的数据的ID与数据库表中的ID相对应,然后执行删除,如有外键的数据也需要删除那么要声明一个参数来接收表中的外键ID,好在删除外键ID对应的表中数据时知道删除的是具体的哪条数据,如同代码中的var CommodityID = dbcommoditydetail.CommodityID;
接着在下表中主键与其对应, where tbCommodity.CommodityID == commodityID,
这样具体删除的那条就知道了。最后提示代码图: