更新和重新绑定数据源引用(Visual Studio 报表设计器)

ReportViewer 控件和客户端报表定义 (.rdlc) 文件包括有关为报表提供数据的数据源的引用。如果转换报表定义、添加或删除数据集,或者修改报表中使用的数据集,则必须在部署或运行应用程序之前,更新所有数据源引用和绑定。

ReportViewer 控件和报表使用的数据源引用概述

控件和报表以多种方式使用数据源信息。首先,报表定义使用嵌入式架构信息创建报表布局中的项和最终合并到布局中的数据之间关联。其次,ReportViewer 控件需要数据源绑定,以便您可以在运行时向其传递数据。

在运行时,所有绑定和数据源信息必须保持同步,以使报表包含您所需的数据。有各种选项可以帮助您在修改应用程序中使用的报表和数据集时,保持数据源信息在整个开发阶段内同步。以下列表汇总了可用的各种选项:

  • “ReportViewer 任务”智能标记面板中的**“选择数据源”**任务用于将数据源绑定到从服务器报表定义 (.rdl) 文件转换而来的客户端报表定义 (.rdlc) 文件。

  • “ReportViewer 任务”智能标记面板中的**“重新绑定数据源”**任务用于使控件和报表定义与修改的数据集保持同步。

  • “报表”菜单上的**“报表数据源”**对话框用于更新报表定义文件中存储的架构信息。以图形设计模式编辑客户端报表定义 (.rdlc) 文件时,可以使用“报表”菜单。

更新报表定义中的数据源引用

报表定义包括定义报表使用的数据源结构的数据集元素。数据集元素是在报表设计过程中添加到报表定义的。每次将某个特定字段拖至报表中的数据区域或文本框中时,都添加一个新元素。

如果您要在包含不同数据源的项目之间复制报表定义文件,或者修改了项目中使用的数据集,则必须更新报表定义。如果您随后通过删除或重命名字段或表来修改项目中的实际数据集,则报表定义将不再包含有效的引用。若要更新报表定义,请使用**“数据源”**对话框,如以下步骤中所述。

如何更新报表定义中的引用

  1. 在图形设计模式下打开客户端报表定义 (.rdlc) 文件。

  2. 从“报表”菜单中选择**“数据源”**。将显示“报表数据源”对话框。您可以使用以下选项:

    • 若要向报表定义添加新的数据集,请选择“项目”数据源并单击**“添加到报表”**。在大多数情况下,此选项不是必要选项。将字段拖至报表布局中时,项目数据源会自动添加到报表定义。

    • 若要从报表定义中删除现有数据集引用,请选择数据集,然后单击**“删除”**。

    • 如果重命名了项目中的数据集,可以使用“报表数据源”对话框来更新报表定义中的数据集名称。单击**“重命名”**按钮,以覆盖模式设置数据集名称,然后键入新名称。

  3. 单击**“全部刷新”**以使用更改过的内容更新报表定义文件。

将数据源重新绑定到 ReportViewer 控件

ReportViewer 控件需要数据绑定才能在运行时访问应用程序数据源。为控件创建数据绑定是在您选择客户端报表定义 (.rdlc) 文件时进行的。

如果修改已绑定到控件的报表定义,在控件已绑定到窗体或网页之后修改数据集,或将新的数据集添加到报表,则必须重新绑定数据源。所有这些情况都会导致绑定过期。可以使用“ReportViewer 任务”智能标记面板上的**“重新绑定数据源”**任务更新应用程序代码中的数据绑定。

Note注意

不是所有对报表定义的修改都需要重新绑定数据源。例如,重排项、对项进行格式设置或在多个数据区域中重用同一个数据绑定字段等修改不会使现有数据绑定失效。同样,如果修改不是在报表中使用的数据源的一部分,则不必更新绑定。

如何重新绑定数据源

  1. 打开包含 ReportViewer 控件的窗体或网页。

  2. 在“ReportViewer 任务”智能标记面板中,单击**“重新绑定数据源”**。您可以检查该窗体或网页的代码以确认所做的更改。

为 ReportViewer 控件选择数据源

将服务器报表定义 (.rdl) 文件转换为客户端报表定义 (.rdlc) 文件时,必须确保您的应用程序包含 ReportViewer 控件的数据绑定代码。数据绑定代码是在使用报表模板创建 .rdlc 文件时自动生成的。但是,如果以某些其他方法创建 .rdlc 文件,则将丢失数据绑定代码。若要添加数据绑定代码,请使用“ReportViewer 任务”智能标记面板上的**“选择数据源”**任务。若要了解有关转换报表定义的更多信息,请参见转换 RDL 文件和 RDLC 文件

如何添加数据源绑定

  1. 打开包含 ReportViewer 控件的窗体或网页。

  2. 在“ReportViewer 任务”智能标记面板中,单击**“选择数据源”**。您可以检查该窗体或网页的代码以确认所做的更改。

另请参见

概念

创建客户端报表定义 (.rdlc) 文件
为报表创建数据源
使用“ReportViewer 任务”智能标记面板
将 ReportViewer 配置为进行本地处理