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都不一致 有什么好的解决方法.
{
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都不一致 有什么好的解决方法.
{
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
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
剩下的交给楼主
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)){}
}
}已解决 谢谢