/// <summary> /// 根据输入的参数保存到数据库 /// </summary> /// <param name="e">传入的带有数据的事件参数</param> /// <returns></returns> private bool InsertData(FormViewInsertEventArgs e) { //数据适配器 //当前添加语句对象 //当前数据库连接 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(); //开启事务 using (var tran = conn.BeginTransaction()) { //设置事务 da.Transaction = daChange.Transaction = tran; //试运行 try { //执行保存数据 if (da.Insert( e.Values["prev_proc_name"].ToString(), e.Values["proc_name"].ToString(), e.Values["lot_id"].ToString(), e.Values["product_num"].ToString(), (int)e.Values["pnl_qty"], (int)e.Values["pcs_qty"], e.Values["remark"].ToString(), e.Values["add_person"].ToString(), (DateTime)e.Values["add_time"], (DateTime)e.Values["last_change_time"], e.Values["accept_person"].ToString(), (DateTime?)e.Values["accept_time"], (bool)e.Values["is_complete_wenzi"] ) <= 0) { //抛出错误 throw new Exception("添加部门批量卡结存发生错误!"); } //取得一个相关guid var guid = Guid.NewGuid().ToString(); //保存到修改记录表 if (daChange.InsertData( e.Values["prev_proc_name"].ToString(), e.Values["proc_name"].ToString(), e.Values["lot_id"].ToString(), e.Values["product_num"].ToString(), (int)e.Values["pnl_qty"], (int)e.Values["pcs_qty"], e.Values["remark"].ToString(), e.Values["add_person"].ToString(), e.Values["accept_person"].ToString(), (DateTime?)e.Values["accept_time"], (bool)e.Values["is_complete_wenzi"], true, guid ) <= 0) { //抛出错误 throw new Exception("添加修改批量卡结存日志记录发生错误!"); } //提交事务 tran.Commit(); //返回成功 return true; } catch (Exception ex) { //回滚事务 tran.Rollback(); //抛出错误 throw new Exception(ex.Message); } } } }
/// <summary> /// 根据输入的参数保存到数据库 /// </summary> /// <param name="e">传入的带有数据的事件参数</param> /// <returns></returns> private bool UpdateData(FormViewUpdateEventArgs e) { //数据适配器 //当前添加语句对象 //当前数据库连接 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 { //执行保存数据 if (da.UpdateData( e.NewValues["prev_proc_name"].ToString(), e.NewValues["proc_name"].ToString(), e.NewValues["lot_id"].ToString(), e.NewValues["product_num"].ToString(), Convert.ToInt32(e.NewValues["pnl_qty"]), Convert.ToInt32(e.NewValues["pcs_qty"]), e.NewValues["remark"] == null ? null : e.NewValues["remark"].ToString(), e.NewValues["add_person"].ToString(), Convert.ToDateTime(e.NewValues["add_time"]), Convert.ToDateTime(e.NewValues["last_change_time"]), e.NewValues["accept_person"] == null ? null : e.NewValues["accept_person"].ToString(), e.NewValues["accept_time"] == null ? null : (DateTime?)e.NewValues["accept_time"], Convert.ToBoolean(e.NewValues["is_complete_wenzi"]), Convert.ToInt64(e.Keys[0]) ) <= 0) { //抛出错误 throw new Exception("修改部门批量卡结存发生错误!"); } //取得一个相关guid var guid = Guid.NewGuid().ToString(); //保存到修改记录表 if (daChange.InsertData( e.OldValues["prev_proc_name"].ToString(), e.OldValues["proc_name"].ToString(), e.OldValues["lot_id"].ToString(), e.OldValues["product_num"].ToString(), Convert.ToInt32(e.OldValues["pnl_qty"]), Convert.ToInt32(e.OldValues["pcs_qty"]), e.OldValues["remark"] == null ? null : e.OldValues["remark"].ToString(), e.OldValues["add_person"].ToString(), e.OldValues["accept_person"] == null ? null : e.OldValues["accept_person"].ToString(), e.OldValues["accept_time"] == null ? null : (DateTime?)e.OldValues["accept_time"], Convert.ToBoolean(e.OldValues["is_complete_wenzi"]), false, guid ) <= 0) { //抛出错误 throw new Exception("添加修改批量卡结存旧数据日志记录发生错误!"); } //保存到修改记录表 if (daChange.InsertData( e.NewValues["prev_proc_name"].ToString(), e.NewValues["proc_name"].ToString(), e.NewValues["lot_id"].ToString(), e.NewValues["product_num"].ToString(), Convert.ToInt32(e.NewValues["pnl_qty"]), Convert.ToInt32(e.NewValues["pcs_qty"]), e.NewValues["remark"] == null ? null : e.NewValues["remark"].ToString(), e.NewValues["add_person"].ToString(), e.NewValues["accept_person"] == null ? null : e.NewValues["accept_person"].ToString(), e.NewValues["accept_time"] == null ? null : (DateTime?)e.NewValues["accept_time"], Convert.ToBoolean(e.NewValues["is_complete_wenzi"]), true, guid ) <= 0) { //抛出错误 throw new Exception("添加修改批量卡结存新数据日志记录发生错误!"); } //提交事务 tran.Commit(); //返回成功 return true; } catch (Exception ex) { //回滚事务 tran.Rollback(); //抛出错误 throw new Exception(ex.Message); } } } }
/// <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); } } } }