开发者

Pass multiple values in crystal report

I am trying to pass 2 values that are generated from C# passed to MS SQL stored procedure through Crystal reports

so far i have this code

string username = Context.User.Identity.Name;
string date = DateTime.Now.ToShortDateString() ;
ReportDocument crystalReport = new ReportDocument();

crystalReport.Load(Server.MapPath(@"..\admin\CrystalReport1.rpt"));
crystalReport.SetParameterValue("@Username", username);
crystalReport.SetParameterValue("@Date", date);

crystalReport.SetDatabaseLogon("", "", @"dennislaptop-pc\SQLEXPRESS", "healthylifestyledb");
CrystalReportViewer1.ReportSource = crystalReport;

the above code is in the crystal report generation page the problem i开发者_如何学运维s when i try to pass the @Date Value to the stored procedure. the stored procedure works well but i am getting this error in C#

Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))

any help how i can pass 2 parameter values ?


I've used a different method. If you create a CrystalReport C# will generate a class (and .cs) file for that report.

You can then create the report via ReportClass report = new CrystalReport1();

Then you can add parameters:

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

ReportClass report = new CrystalReport1();
report.SetParameterValue("companies", "Microsoft");
//or use the overloaded value for an array as 2nd parameter

But you need to have your reports created via C# (or maybe added to C# is enough) to create the class for the report.


Are the parameters both from the same 'source'? For some reason, if you're trying to write to a parameter that Crystal is passing to a stored procedure, you need the @ in front of the name, while if it's a parameter that you've manually added to the report, the @ isn't needed. If '@Date' doesn't work as the name, try just 'Date'.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜