Esempio n. 1
0
        /// <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);
                    }
                }
            }
        }
Esempio n. 2
0
        /// <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);
                    }
                }
            }
        }
Esempio n. 3
0
        /// <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);
                    }
                }
            }
        }