C# ReportViewer从数据表进行报告

C# ReportViewer从数据表进行报告,c#,reportviewer,report,C#,Reportviewer,Report,我想知道是否有一种方法可以从SQL查询为ReportViewer设计报告。因此,从SQL查询中,我将获得生成报表所需的所有数据,然后在designer中设计报表 我是ReportViewer的新手,我很困惑。现在我可以看到我可以通过向导填充数据集,但是就我所见,没有办法在其中抛出SQL查询,然后从中进行设计 我想要的是可能的还是必须使用DataGridView?我非常想使用reportviewer,因为它支持打印/导出。有关于这个主题的文献吗?如果您使用的是(reportViewer.Local

我想知道是否有一种方法可以从SQL查询为ReportViewer设计报告。因此,从SQL查询中,我将获得生成报表所需的所有数据,然后在designer中设计报表

我是ReportViewer的新手,我很困惑。现在我可以看到我可以通过向导填充数据集,但是就我所见,没有办法在其中抛出SQL查询,然后从中进行设计

我想要的是可能的还是必须使用DataGridView?我非常想使用reportviewer,因为它支持打印/导出。有关于这个主题的文献吗?

如果您使用的是(
reportViewer.LocalReport
)而不是SSR(所有内容都可以点击),那么链接中会有一个示例

具有接受
数据表
对象的构造函数

您只需要设计报表并将数据集添加到RDL文件中

编辑:以xml格式插入数据集,如下所示:

<DataSources>
    <DataSource Name="MyDataSource">
      <ConnectionProperties>
        <ConnectString />
        <DataProvider>SQL</DataProvider>
      </ConnectionProperties>
    </DataSource>
    ...
</DataSources>

<DataSets>
    <DataSet Name="MyDataSet">
      <Query>
        <CommandText>MyDataSet</CommandText>
        <DataSourceName>MyDataSource</DataSourceName>
      </Query>
      <Fields>
        <Field Name="Id">
          <DataField>ID</DataField>
        </Field>
        <Field Name="SomeOtherField">
          <DataField>SOME_OTHER_FIELD</DataField>
        </Field>
      </Fields>
   </DataSet>
</DataSets>

SQL
...
MyDataSet
MyDataSource
身份证件
其他领域

首先,这取决于您使用的是本地报表还是服务器报表(SQL server Reporting Services)。两者都可以在ReportViewer控件中显示

对于服务器报告,事情很简单。报表包含数据源,您可以选择使用SQL语句或现有存储过程

对于当地的报道来说,事情有点困难。您必须设计一个包含数据的类型化数据集。这可以像往常一样从任何地方填充(SQL命令、存储过程等)。然后将此数据集的实例分配给报表的数据源

请注意,虽然服务器报告允许您过滤数据,但在使用本地报告时,您必须自己编写一些过滤功能