for (int i = 0; i < dr.Length; i++)
  {
  string UserAccount = dr[i]["员工工号"].ToString();
  string StartDate = dr[i]["开始日期"].ToString();
  string StartTime = dr[i]["开始时间"].ToString();
  string EndDate = dr[i]["结束日期"].ToString();
  string EndTime = dr[i]["结束时间"].ToString();
  decimal DayQty = 0;
  if (string.IsNullOrEmpty(StartDate) || string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndDate) || string.IsNullOrEmpty(EndTime))
  {
  DayQty = 0;
  }
  else
  {
  DayQty = decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave)); //decimal.Parse(dr[i]["天数"].ToString());
  }根据Useraccount记录下DayQty值(相同UserAccount相加),但是每次的Useraccount都不一致  有什么好的解决方法.

解决方案 »

  1.   

        for (int i = 0; i < dr.Length; i++)
        {
            string UserAccount= dr[i]["员工工号"].ToString();
            
            //查该员工对应的记录
            string str=string.Format("select * from 表 where useraccount={0}",UserAccount);
            //查出来都讲记录添加到DataTable里面(自己根据数据库写)
             DataTable dt=new DataTable();
            
            //统计数据条数
            string str=string.Format("select * from 表 where useraccount={0}",UserAccount);
            //统计记录条数
             int count ...
            
            for(int j = 0; j < dr.Length; j++)
            {
                string StartDate = dr[j]["开始日期"].ToString();
                string StartTime = dr[j]["开始时间"].ToString();
                string EndDate = dr[j]["结束日期"].ToString();
                string EndTime = dr[j]["结束时间"].ToString();
                decimal DayQty = 0;
                if (string.IsNullOrEmpty(StartDate) || string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndDate) || string.IsNullOrEmpty(EndTime))
                {
                    DayQty = 0;
                }
                else
                {
                    DayQty += decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave)); //decimal.Parse(dr[i]["天数"].ToString());
                }
            }
        }
    修改了下你的代码,先获取名字,然后查询出名字对应的数据和该名字对应的记录数,然后循环遍历,最后的DayQty就是该用户的总DayQty
      

  2.   


    for(int j = 0; j < count+1; j++)
            {
                string StartDate = dt[j]["开始日期"].ToString();
                string StartTime = dt[j]["开始时间"].ToString();
                string EndDate = dt[j]["结束日期"].ToString();
                string EndTime = dt[j]["结束时间"].ToString();
                decimal DayQty = 0;
                if (string.IsNullOrEmpty(StartDate) || string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndDate) || string.IsNullOrEmpty(EndTime))
                {
                    DayQty = 0;
                }
                else
                {
                    DayQty += decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave)); //decimal.Parse(dr[i]["天数"].ToString());
                }
            }后面循环忘了改0 0
    剩下的交给楼主
      

  3.   

    DataRow[] dr=new DataRow();
      Dictionary<string,string> userDate = new Dictionary<string,string>();
      Dictionary<string,decimal> user = new Dictionary<string,decimal>();
      decimal DayQty = 0;
      for(int i = 0; i < dr.Length; i++)
      {
      userDate.Add(dr[i]["员工工号"].ToString(),"");
      }
      foreach(string userId in userDate.Keys)
      {
      DayQty=0;
      for (int i = 0; i < dr.Length; i++)
      {
      string UserAccount = dr[i]["员工工号"].ToString();
      string StartDate = dr[i]["开始日期"].ToString();
      string StartTime = dr[i]["开始时间"].ToString();
      string EndDate = dr[i]["结束日期"].ToString();
      string EndTime = dr[i]["结束时间"].ToString();
        
      if (string.IsNullOrEmpty(StartDate) || string.IsNullOrEmpty(StartTime) || string.IsNullOrEmpty(EndDate) || string.IsNullOrEmpty(EndTime))
      {
      //StartDate = EndDate = "0";
      //StartTime =EndTime = "";
      }
      else
      {
      if(userId == dr[i]["员工工号"].ToString())
      {
      DayQty += decimal.Parse(GetLeaveDays(StartDate, StartTime, EndDate, EndTime, LeaveTypeModel.AnnualLeave)); //decimal.Parse(dr[i]["天数"].ToString());
      }
      }
      }
      if(!user.ContainsKey(userId))
      {
      user.Add(userId,DayQty);
      }
      }
      foreach(KeyValuePair<string,decimal> u in user)
      {
      if( GetAnnualSet(u.Key,u.Value)){}
        
      }
      }已解决 谢谢