1.执行了存储过程并且带有参数,例如:图A(存储过程)
那么在我们设计报表的时候已经将相对应的存储过程加入到水晶报表里面了。所以在报表自身浏览的时候只要输入参数的值就可以得到游览结果 例如 图B
所以这种方式,放到代码里面写的话只要填充相对应的参数(注意这里是执行存储过程的参数 例如上图A的 @inputmarket)
代码编写 图C
2.第二种是填充数据的方式就是ADO.NET常用的那种,此类一样可以填充参数但值得注意的是一定要在数据填充之后再设置参数 例如图D
看到这里分析一下两次参数的区别:
(1)第一种的参数他是这个存储过程的参数,所以需要填充之后等存储过程返回结果集;
(2)第二种情况是给报表填充了结果集之后将参数填充进报表里面。
所以得到的 图D的是 CrystalReportViewer1.ReportSource = rd;之后再填充参数进报表。
开发过程中遇到个问题值得注意,可能是本人不熟的原因吧:
rd.SetDatabaseLogon("writer", "testing", "DB1", "SO_RPT");
如果不加这一句的话处出现 图E的情况:
如果看了还是不知所云的话,请到这里找你需要的东西,比较基础。http://blog.csdn.net/xiaoshi0318/article/details/4058040