.net ReportViewer - 对象引用未设置为对象的实例? ReportError

时间:2013-06-03 10:35:04

标签: c# debugging reportviewer

enter image description here

我在哪里可以捕获报表查看器中显示的错误,因为这不是我生成的代码? 特别是,我想找出哪个Object没有设置为实例。

2 个答案:

答案 0 :(得分:2)

在.aspx页面中,将事件处理程序OnReportError添加到ReportViewer元素:

<rsweb:ReportViewer ID="ReportViewer1" runat="server" Font-Names="Verdana" Font-Size="8pt" InteractiveDeviceInfos="(Collection)" style="margin-top: 0px" WaitMessageFont-Names="Verdana" WaitMessageFont-Size="14pt" Width="817px" Height="554px"
OnReportError="ReportErrorEventHandler">
    <LocalReport ReportPath="App_Code\Session_subclasses\CustomerPortal\SGTSAssetCatalog.rdlc">
        <DataSources>
            <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" 
                Name="DataSet1" />
        </DataSources>
    </LocalReport>
</rsweb:ReportViewer>

在.aspx.cs页面中添加一个Method来处理事件。该事件包含e.Exception下的异常:

public void ReportErrorEventHandler(Object sender, ReportErrorEventArgs e)
{
    throw e.Exception;
}

在遵循InnerExceptions的路径之后,我发现,DataSet中指定的连接字符串存在于我的开发环境中,但不存在于测试环境中......花了足够长的时间才能触及这个简单问题的底部-.-

答案 1 :(得分:0)

以上可能有所帮助。尝试添加事件ReportViewer.ReportError事件。  http://msdn.microsoft.com/enus/library/microsoft.reporting.webforms.reportviewer.reporterror(v=vs.100).aspx