数据库中记录了工人每天的计件数量,一个月中可能某些天某工人没有数量记录,如何从数据库中导出所有工人某个月各天的计件数量,没有记录的那天计件数量显示0.数据库
解决方案 »
- 如何在Page.LoadTemplate时,往模板文件a.ascx中传一个参数?
- 请教一个单元测试的问题
- 求助,后台生成的checkboxlist的ID变成用FindControl找不到~~
- 关于水晶报表的问题,急!
- 如何将数据库中的16、2进制文件还原成文件,并在页面上展现给用户查看??
- 如何使用 GridView 处理上百万行数据?
- 谁给推荐一个好点asp.net的虚拟主机的网站厂商,
- 请问在编程时怎么调用OutLook的日历控件。
- 使用ASP.NET开发web service是不是一定要在win2000 server上?
- 一個frame的子窗體,如何在服務器端得到整個frame的url參數!!
- datagridview中字段顺序问题
- 为什么页面提交后会靠左显示了?
where date >=@StartDate And date < @EndDate
group by uid,date
order by uid,dateList<Entity> list;//假定读取出来的数据集
DateTime startDay = new DateTime(Now.Year,Now.Month,1);//对应sql的@StartDate
DateTime endDay = firstDay.AddMonth(1);//对应sql的@EndDate
//读取填充list
int monthDays = (endDay - firstDay).Days;
var query = from e in list
group e by e.Uid into g
select g;foreach(var g in query)
{
for(int i=1;i<=monthDays;i++)
{
DateTime compareDay = new DateTime(Now.Year,Now.Month,i);
Entity entity = list.Where(e=>e.Date==compareDay).FirstOrDefault();
if(entity==null)
{
list.Add(new Entity(){Uid=g.Key,Date=compareDay,Num=0});
}
}
}
//补充:如果某些人一个月内都没记录,这样是查不到的,所以如果又必须要,还需要与员工表作对比
//排序
foreach(var g in query)
{
if(g.Value.Count<monthDays))
{
for(int i=1;i<=monthDays;i++)
{}
}这一段
第一步,一次性取出所有该月该工人录入的数据,方法应该不用说了,假如结果集是List<Product> products
第二步,循环显示每天的记录,象这样:
//先获取该月总天数
var days=DateTime.DaysInMonth(2013,10);
for(int i=1;i<=days;i++){
//i号的件数就是 products.Where(p=>p.日期.Day==i).Sum(p=>p.件数);
}
=================================================================
ASP.NET MVC免费分页控件MvcPager 2.0版发布,功能更强大,欢迎使用:
http://www.webdiyer.com/mvcpager/