Example #1
0
 /// <summary>
 /// 按合同单号执行删除
 /// </summary>
 /// <param name="billNum"></param>
 /// <returns></returns>
 private bool DeleteBillByBillNum(string billNum)
 {
     if (!HasRight())
     {
         throw new Exception("您没有删除记录权限!");
     }
     //数据适配器
     using (var daHead = new t_market_contract_headTableAdapter())
     using (var daContent = new t_market_contract_contentTableAdapter())
     using (var daAppendix = new t_market_contract_appendixTableAdapter())
     {
         var conn = daHead.Connection;
         daContent.Connection = conn;
         daAppendix.Connection = conn;
         //打开数据库连接
         conn.Open();
         //开启事务
         using (var tran = conn.BeginTransaction(System.Data.IsolationLevel.RepeatableRead))
         {
             try
             {
                 //绑定事务到适配
                 daHead.Transaction = tran;
                 daContent.Transaction = tran;
                 daAppendix.Transaction = tran;
                 if (Convert.ToInt32(daContent.CountByBillNum(billNum)) <= 0)
                 {
                     throw new Exception(string.Format("当前单据:\n单号:{0}\n行号:{1}\n已经被其他用户删除!", billNum));
                 }
                 //删除内容
                 if (daContent.DeleteByBillNum(billNum) <= 0)
                 {
                     throw new Exception("根据单号删除内容记录失败!");
                 }
                 //删除数据表头
                 if (daHead.Delete(billNum) <= 0)
                 {
                     throw new Exception("根据单号删除表头记录失败!");
                 }
                 //删除合同附件
                 if (daAppendix.DeleteByBillNum(billNum) <= 0)
                 {
                     throw new Exception("根据单号删除合同附件记录失败!");
                 }
                 //提交事务
                 tran.Commit();
             }
             catch (Exception ex)
             {
                 //事务回滚
                 tran.Rollback();
                 throw ex;
             }
             finally
             {
                 //关闭数据库连接
                 conn.Close();
             }
         }
     }
     return true;
 }
Example #2
0
 /// <summary>
 /// 删除指定合同单号和行序号的一行数据
 /// </summary>
 /// <param name="e">事件参数</param>
 /// <returns></returns>
 private bool DeleteData(ListViewDeleteEventArgs e)
 {
     //数据适配器
     using (var da = new v_market_contractTableAdapter())
     using (var daContent = new t_market_contract_contentTableAdapter())
     using (var daHead = new t_market_contract_headTableAdapter())
     using (var daAppendix = new t_market_contract_appendixTableAdapter())
     {
         //数据库连接对象
         var conn = da.Connection;
         daContent.Connection = conn;
         daHead.Connection = conn;
         daAppendix.Connection = conn;
         //打开数据库连接
         conn.Open();
         //开启事务
         using (var tran = conn.BeginTransaction(System.Data.IsolationLevel.RepeatableRead))
         {
             try
             {
                 //绑定事务
                 da.Transaction = tran;
                 daContent.Transaction = tran;
                 daHead.Transaction = tran;
                 daAppendix.Transaction = tran;
                 //合同单号
                 string billNum = e.Keys[0].ToString();
                 //行号
                 byte rowId = byte.Parse(e.Keys[1].ToString());
                 //取指定单号和行序号的数据
                 var tab = da.GetDataByBillNumAndRowId(billNum, rowId);
                 if (tab.Rows.Count == 0)
                 {
                     throw new Exception(string.Format("当前单据:\n单号:{0}\n行号:{1}\n已经被其他用户删除!", billNum, rowId));
                 }
                 //删除数据行
                 if (daContent.Delete(billNum, rowId) <= 0)
                 {
                     throw new Exception("根据单号和行号删除合同内容失败!");
                 }
                 //删除数据表头
                 if (daHead.Delete(billNum) <= 0)
                 {
                     throw new Exception("根据单号和行号删除合同表头记录失败!");
                 }
                 //删除合同附件
                 if (daAppendix.Delete(billNum, rowId) <= 0)
                 {
                     throw new Exception("根据单号和行号删除合同附件记录失败!");
                 }
                 //提交事务
                 tran.Commit();
             }
             catch (Exception ex)
             {
                 //事务回滚
                 tran.Rollback();
                 throw ex;
             }
             finally
             {
                 conn.Close();
             }
         }
     }
     return true;
 }