示例#1
0
        /// <summary>
        /// 批量删除数据
        /// </summary>
        private void OnDelete()
        {
            string itemsAppend = hV.Value.Trim();

            if (string.IsNullOrEmpty(itemsAppend))
            {
                WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, "请至少勾选一行进行操作", "操作错误", "error");
                return;
            }

            if (bll == null)
            {
                bll = new BLL.Product();
            }
            string[]      itemsAppendArr = itemsAppend.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
            string        pIdAppend      = "";
            List <string> list           = new List <string>();

            foreach (string item in itemsAppendArr)
            {
                list.Add(item);
                pIdAppend += string.Format("'{0}',", item);
            }

            pIdAppend = pIdAppend.Trim(',');
            IList <Model.Product> imagesList = bll.GetImagesListInProductIds(pIdAppend);

            WebHelper.UploadFilesHelper ufh = new WebHelper.UploadFilesHelper();
            string errorMsg = "";

            try
            {
                TransactionOptions options = new TransactionOptions();
                options.IsolationLevel = System.Transactions.IsolationLevel.ReadUncommitted;
                options.Timeout        = TimeSpan.FromSeconds(90);
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required, options))
                {
                    if (bll.DeleteBatch(list))
                    {
                        if (imagesList != null)
                        {
                            try
                            {
                                foreach (Model.Product model in imagesList)
                                {
                                    string   sImagesAppend = model.ImagesAppend;
                                    string[] images        = sImagesAppend.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
                                    foreach (string item in images)
                                    {
                                        ufh.DeleteProductImage(item);
                                    }
                                }
                            }
                            catch
                            {
                            }
                        }
                    }

                    //提交事务
                    scope.Complete();
                }
            }
            catch (Exception ex)
            {
                errorMsg = ex.Message;
            }

            if (!string.IsNullOrEmpty(errorMsg))
            {
                WebHelper.MessageBox.Messager(this.Page, lbtnPostBack, errorMsg, "系统异常提示");
                return;
            }

            WebHelper.MessageBox.MessagerShow(this.Page, lbtnPostBack, "操作成功");
            Bind();
        }