private void buttonDelete_Click(object sender, EventArgs e) { int[] ids = Utilities.GetSelectedIDs(this.reoGridControlMain); if (ids.Length == 0) { MessageBox.Show("请选择要删除的项目", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (ShipmentTicketUtilities.DeleteItemsSync(ids, out string errorMessage) == false) { MessageBox.Show(errorMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Search(); MessageBox.Show("删除成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; }
private void buttonDelete_Click(object sender, EventArgs e) { int[] deleteIDs = this.GetSelectedIDs(); if (deleteIDs.Length == 0) { MessageBox.Show("请选择您要删除的记录", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } WMSEntities wmsEntities = new WMSEntities(); //如果被作业单引用了,不能删除 try { StringBuilder sbIDArray = new StringBuilder(); foreach (int id in deleteIDs) { sbIDArray.Append(id + ","); } sbIDArray.Length--; int countRef = wmsEntities.Database.SqlQuery <int>(string.Format("SELECT COUNT(*) FROM JobTicket WHERE ShipmentTicketID IN ({0})", sbIDArray.ToString())).Single(); if (countRef > 0) { MessageBox.Show("删除失败,发货单被作业单引用,请先删除相应作业单!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } catch { MessageBox.Show("操作失败,请检查您的网络连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (MessageBox.Show("您真的要删除这些记录吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } this.labelStatus.Text = "正在删除..."; new Thread(new ThreadStart(() => { try { foreach (int ticketID in deleteIDs) { int[] itemIDs = (from s in wmsEntities.ShipmentTicketItem where s.ShipmentTicketID == ticketID select s.ID).ToArray(); if (ShipmentTicketUtilities.DeleteItemsSync(itemIDs, out string errorMessage) == false) { MessageBox.Show(errorMessage, "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } wmsEntities.Database.ExecuteSqlCommand("DELETE FROM ShipmentTicket WHERE ID = @shipmentTicketID", new SqlParameter("shipmentTicketID", ticketID)); } wmsEntities.SaveChanges(); } catch { MessageBox.Show("删除失败,请检查网络连接", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.Invoke(new Action(() => { this.Search(true); })); })).Start(); }