【问题标题】:C# Crystal report argument out of range exceptionC# Crystal 报表参数超出范围异常
【发布时间】: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();

Error @reviewing the report

【问题讨论】:

  • 报表实例在哪里创建(crt)?它是在设计时添加到 f3 的控件吗?尝试获取完整的异常调用堆栈并将其发布在这里。 通常提示代码对脚本编写不安全,如果 lblreferral 或 cbclientno 中的文本可编辑,用户可能会注入恶意代码
  • 感谢您的建议,crt 他们是水晶报告,f3 是用于报告查看器的表单,我正在使用视图来获取所有这些数据,然后 lblreferral 是自动生成的数字,cbclient 是组合框只存储客户号
  • 好的,您是在第二次运行之前创建所有内容的新实例,还是重新使用现有实例?
  • 是的,但是当我第一次运行报告时它可以工作,但在第二次我得到了那个错误

标签: c# sql-server-2005 crystal-reports


【解决方案1】:

我找到了问题的答案,它提示了一个参数异常,因为程序,我通过form.Show()而不是form.ShowDialog()调用了表单。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多