protected void btnCalculate_Click(object sender, EventArgs e)
 {
     //执行计算结存数据
     //当前输入的月份
     var yearMonth = txtCalculateYearMonth.Text;
     DateTime dtStart, dtEnd;
     //检测输入
     if (yearMonth.Length != 6 || !DateTime.TryParse(yearMonth.Insert(4, "/") + "/01", out dtStart))
     {
         throw new Exception("您输入的年月不符合规则!");
     }
     //结束日期
     dtEnd = dtStart.AddMonths(1).AddDays(-1);
     //当月
     var iYearMonth = int.Parse(yearMonth);
     //上月
     var iYearMonthPrev = int.Parse(dtStart.AddMonths(-1).ToString("yyyyMM"));
     //数据适配器
     using (var da = new t_material_stocktakingTableAdapter())
     using (var conn = da.Connection)
     {
         //打开数据连接
         conn.Open();
         //开启事务
         using (var tran = conn.BeginTransaction())
         {
             try
             {
                 //设置事务
                 da.Transaction = tran;
                 //删除原来月底结存数据
                 da.DeleteByYearMonth(iYearMonth);
                 //写入数据到月底结存
                 da.InsertFromInOutLoseBack(
                     iYearMonth,
                     Session["user_name"].ToString(),
                     iYearMonthPrev,
                     dtStart,
                     dtEnd
                 );
                 //提交事务
                 tran.Commit();
             }
             catch (Exception ex)
             {
                 //回滚事务
                 tran.Rollback();
                 //抛出错误
                 throw ex;
             }
         }
     }
     //设置查询条件
     Session["material_stocktaking_where_content"] = " where [year_month]='" + iYearMonth + "'";
     //重新绑定数据
     lvMaterialStocktaking.DataBind();
 }