使用Linq作为rdlc报表的数据源
2010-01-25 23:26
621 查看
平时做报表大都使用ADO.NET填充数据集来处理,今天尝试了下用Linq来做,也很方便,不过稍微费了一番周折。
示例代码下载
一、准备工作
1、Northwind数据库
2、开发环境:VS2008 + SQL Server 2008
3、本测试采用网页形式,WinForm大同小异,感兴趣的朋友可以自己测试下
二、制作报表
这次先用rdlc测试,下次改用水晶报表试试。报表的布局还是很简单的,由于是测试,只放了很少的控件:
代码
private void fnBuildDataSource(string v_strCountry)
{
NorthwindDataContext ctx = new NorthwindDataContext();
var datasource = from c in ctx.sp_LinqTest(v_strCountry)
orderby c.CustomerID
select c;
ReportParameter rpCountry = new ReportParameter("p_Country", v_strCountry);
this.rvNorthwind.LocalReport.SetParameters(new ReportParameter[] { rpCountry });
this.rvNorthwind.LocalReport.DataSources.Add(new ReportDataSource("sp_LinqTestResult", datasource.ToList()));
this.rvNorthwind.LocalReport.Refresh();
}
最终效果图如下:
小结:
用Linq做数据源虽然可以实现,但是相对于传统的DataSet,其效率值得考虑,尤其当数据量很大时,报表的反应速度尤其重要,现在微软对Linq做数据源的支持还不够“官方”,期待VS2010中有何新特性吧!
本次我也留下了一些疑问:
1、不用存储过程(或视图)是否可行呢?
2、能否从后台编程获取RDLC的控件实例?
3、能否操作RDL语言来嵌入Linq呢?
4、如果Linq返回了匿名类型该如何拖拽呢?
示例代码下载
一、准备工作
1、Northwind数据库
2、开发环境:VS2008 + SQL Server 2008
3、本测试采用网页形式,WinForm大同小异,感兴趣的朋友可以自己测试下
二、制作报表
这次先用rdlc测试,下次改用水晶报表试试。报表的布局还是很简单的,由于是测试,只放了很少的控件:
代码
private void fnBuildDataSource(string v_strCountry)
{
NorthwindDataContext ctx = new NorthwindDataContext();
var datasource = from c in ctx.sp_LinqTest(v_strCountry)
orderby c.CustomerID
select c;
ReportParameter rpCountry = new ReportParameter("p_Country", v_strCountry);
this.rvNorthwind.LocalReport.SetParameters(new ReportParameter[] { rpCountry });
this.rvNorthwind.LocalReport.DataSources.Add(new ReportDataSource("sp_LinqTestResult", datasource.ToList()));
this.rvNorthwind.LocalReport.Refresh();
}
最终效果图如下:
小结:
用Linq做数据源虽然可以实现,但是相对于传统的DataSet,其效率值得考虑,尤其当数据量很大时,报表的反应速度尤其重要,现在微软对Linq做数据源的支持还不够“官方”,期待VS2010中有何新特性吧!
本次我也留下了一些疑问:
1、不用存储过程(或视图)是否可行呢?
2、能否从后台编程获取RDLC的控件实例?
3、能否操作RDL语言来嵌入Linq呢?
4、如果Linq返回了匿名类型该如何拖拽呢?
相关文章推荐
- LINQ 作为Rdlc报表的数据源
- WPF中的binding(七)- 使用LINQ检索作为Binding的数据源
- jasperreport制作报表(二)使用JavaBean封装成List作为数据源
- ireport+jasperreport开源报表中使用javabean作为数据源的详细实现过程
- 在报表工具中使用esProc作为数据源
- 使用Data Template作为BIP报表的数据源
- FastReport.Net中使用列表和数组作为报表数据源
- (转)将rdlc报表作为资源嵌套使用
- 使用eclipse在jsp上显示水晶报表(七)用sql 命令对象作为数据源1
- 使用Data Template作为BIP报表的数据源
- iReport 使用JavaBean作为数据源开发报表(SSM)
- Jasper+ireport动态报表学习(二)使用数据库作为数据源进行报表绘制
- 使用Javabean作为数据源的JasperReport报表(通过WebService/RMI调用数据)
- FastReport.Net报表中使用 Excel 文件作为数据源
- [翻译]如何使用webservice作为数据源去生成Microsoft Reporting Services 2005的报表
- 使用润乾报表数据作为数据源创建统计图
- [翻译]如何使用webservice作为数据源去生成Microsoft Reporting Services 2005的报表 (转)
- 如何使用webservice作为数据源去生成Microsoft Reporting Services 2005的报表(转)
- 使用Data Template作为BIP报表的数据源
- [翻译]如何使用webservice作为数据源去生成Microsoft Reporting Services 2005的报表