【发布时间】:2017-08-24 19:25:37
【问题描述】:
我正在创建一个水晶报表@c# 程序,但是当我执行该报表时,它一开始可以工作,但是当我第二次执行相同的报表时,我遇到了这个错误。
我使用视图到 sql server 来检索我的数据。
cmd = new SqlCommand("Select * From referral where referralNo = '" +
lblReferral.Text + "' and clientNo = '" + cbClientNo.Text + "'", con);
cmd.CommandType = CommandType.Text;
da.SelectCommand = cmd;
da.Fill(ds, "referral");
rp.SetDataSource(ds);
f3.crt.ReportSource = rp;
f3.Show();
rp.Close();
我遇到了这个错误。
An unhandled exception of type 'System.ArgumentOutOfRangeException'
occurred in System.Windows.Forms.dll
Additional information: Index 0 is out of range.
那么这些就是实例
CrystalReport1 rp = new CrystalReport1();
SqlDataAdapter da = new SqlDataAdapter();
DataSet ds = new DataSet();
reportViewer f3 = new reportViewer();
【问题讨论】:
-
报表实例在哪里创建(
crt)?它是在设计时添加到 f3 的控件吗?尝试获取完整的异常调用堆栈并将其发布在这里。 通常提示代码对脚本编写不安全,如果 lblreferral 或 cbclientno 中的文本可编辑,用户可能会注入恶意代码 -
感谢您的建议,crt 他们是水晶报告,f3 是用于报告查看器的表单,我正在使用视图来获取所有这些数据,然后 lblreferral 是自动生成的数字,cbclient 是组合框只存储客户号
-
好的,您是在第二次运行之前创建所有内容的新实例,还是重新使用现有实例?
-
是的,但是当我第一次运行报告时它可以工作,但在第二次我得到了那个错误
标签: c# sql-server-2005 crystal-reports