/// <summary> /// 根据输入的参数在数据库中删除记录 /// </summary> /// <param name="id">待删除的行的序号</param> /// <returns></returns> private bool DeleteData(Int64 id) { //数据适配器 //当前添加语句对象 //当前数据库连接 using (var da = new t_proc_lot_card_balanceTableAdapter()) using (var daChange = new t_proc_lot_card_balance_changeTableAdapter()) using (var cmd = da.Adapter.InsertCommand) using (var conn = cmd.Connection) { //打开数据库连接 conn.Open(); //设置数据库连接 da.Connection = daChange.Connection = cmd.Connection = conn; //开启事务 using (var tran = conn.BeginTransaction()) { //设置事务 da.Transaction = daChange.Transaction = cmd.Transaction = tran; //试运行 try { //提取数据 var tab = da.GetDataById(id); //检测数据 if (tab.Rows.Count <= 0) { //抛出错误 throw new Exception("删除部门批量卡结存发生错误,数据不存在!"); } //获取首行数据 var row = (DataSetProcLotCardMgr.t_proc_lot_card_balanceRow)tab.Rows[0]; //当前用户所在部门 string procName = Session["proc_name"].ToString().ToUpper(); //当前角色id Int16 roleId = Convert.ToInt16(Session["role_id"]); //检测是否有权限 if ((procName != mustProcName && procName != "样板") || roleId < 0 || roleId > 1) { throw new Exception("您没有添加记录权限!"); } //当前输入的批量卡序号 string lotId = row.lot_id.Trim().ToUpper(); //检测是否样板 bool isSample = lotId.Contains("S"); //检测是否正确批量卡号 if (!isSample && !ydOperateLotCard.IsLotCardId(ref lotId)) { //非数字返回失败 throw new Exception("您输入了一个不合格的批量卡号 " + lotId + " !"); } //检测是否正确样板批量卡号 if (isSample && !ydOperateSampleLotCard.IsSampleLotCardId(ref lotId)) { //非数字返回失败 throw new Exception("您输入了一个不合格的样板批量卡号 " + lotId + " !"); } //检测lot卡类型 if (lotId.Contains("S") && procName != "样板") { throw new Exception("当前只能删除样板批量卡!"); } //检测lot卡类型 if (!lotId.Contains("S") && procName != "PMC") { throw new Exception("当前只能删除生产板批量卡!"); } //执行保存数据 if (da.Delete(id) <= 0) { //抛出错误 throw new Exception("删除部门批量卡结存发生错误!"); } //取得一个相关guid var guid = Guid.NewGuid().ToString(); //保存到修改记录表 if (daChange.InsertData( row.prev_proc_name, row.proc_name, row.lot_id, row.product_num, row.pnl_qty, row.pcs_qty, row.IsremarkNull() ? null : row.remark, row.add_person, row.Isaccept_personNull() ? null : row.accept_person, row.Isaccept_timeNull() ? null : (DateTime?)row.accept_time, row.is_complete_wenzi, false, guid ) <= 0) { //抛出错误 throw new Exception("添加修改批量卡结存旧数据日志记录发生错误!"); } //提交事务 tran.Commit(); //返回成功 return true; } catch (Exception ex) { //回滚事务 tran.Rollback(); //抛出错误 throw new Exception(ex.Message); } } } }