我在网络应用程序中使用水晶报表。我的问题是当我保持EnableDatabaseLogonPrompt =“true”和EnableParameterPrompt =“true”并在提示框中提供信息时,我的报告工作正常。但是当我保持虚假并从代码后面提供信息时,它总是会出现“缺少参数值”或“数据库登录失败”的错误。
我的代码如下:
Aspx文件:
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="True"
GroupTreeImagesFolderUrl="" Height="1202px"
ReportSourceID="CrystalReportSource1" ReuseParameterValuesOnRefresh="True"
ToolbarImagesFolderUrl="" ToolPanelWidth="200px" Width="903px"
ToolPanelView="None" EnableDatabaseLogonPrompt="False"
EnableParameterPrompt="False" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>
代码背后:
ReportDocument reportDocument = new ReportDocument();
reportDocument.Load(Server.MapPath("~/CrystalReport1.rpt"));
string s=@"4EVER3-PC\MSSQLSERVER2";
reportDocument.SetDatabaseLogon("db", "pwd", s, "databasename", true);
reportDocument.SetParameterValue("@bankACId", "0");
reportDocument.SetParameterValue("@fromDate", "4/11/2011 17:01:57");
reportDocument.SetParameterValue("@todate", "4/11/2014 17:01:57");
CrystalReportViewer1.ReportSource = reportDocument;
CrystalReportViewer1.RefreshReport();
请指出此代码有什么问题。它让我疯狂。
答案 0 :(得分:1)
解决了登录失败错误。
我从另一台电脑上访问数据库,它的防火墙不允许我通过水晶报告连接。所以我将sql server management studio添加到防火墙允许的程序列表中。所以现在解决了连接问题。
所以没有任何参数的水晶报告工作正常。但是当我传递参数时,它强制关闭调试服务器。任何想法应该是什么问题。
这是我的问题的一半答案,可能对那些面临连接问题的人有所帮助。
答案 1 :(得分:0)
Aspx FIle:
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="True"
Height="1202px"
ReportSourceID="CrystalReportSource1" />
<CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
<Report FileName="CrystalReport1.rpt">
</Report>
</CR:CrystalReportSource>
代码背后:
protected void btnShowReport_Click(object sender, EventArgs e)
{
LoadReport();
}
private void LoadReport()
{
doc = new ReportDocument();
doc.Load(Server.MapPath("CrSalesReport.rpt"));
doc.SetDatabaseLogon(AppConfig.ReportServerDSUserName, AppConfig.ReportServerDSPassword, AppConfig.ReportServerDomain, "TexERP", false);
doc .SetParameterValue("@bankACId", "0");
doc .SetParameterValue("@fromDate", "4/11/2011 17:01:57");
doc .SetParameterValue("@todate", "4/11/2014 17:01:57");
CrystalReportViewer1.ReportSource = doc;
}