1

在此处输入图像描述

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

4

2 回答 2

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 页面中添加一个方法来处理事件。该事件包含e.Exception下的Exception:

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

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

于 2013-06-03T14:22:30.390 回答
0

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

于 2013-06-03T11:10:03.270 回答