将数据表绑定到rdlc报告

时间:2013-08-05 11:25:15

标签: c# asp.net datatable rdlc

我已使用数据集使用我的存储过程绑定我的rdlc报告。我可以将操纵数据表绑定到我的rdlc报告而不是数据集(.xsd)。

2 个答案:

答案 0 :(得分:4)

是的,我们可以使用被操纵的数据表作为数据源进行报告。但字段名称应该相同。

DataTable   dtReportData="yourdata source"

YourReportViewer.LocalReport.DataSources.Clear();
ReportDataSource RDS1 = new ReportDataSource("SampleReport", dtReportData);
YourReportViewer.ProcessingMode = ProcessingMode.Local;
YourReportViewer.LocalReport.EnableExternalImages = true;
YourReportViewer.LocalReport.ReportEmbeddedResource = "Your Report Path";
YourReportViewer.LocalReport.DataSources.Add(RDS1);

答案 1 :(得分:4)

ASPX上的reportViewer

<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True">
</rsweb:ReportViewer>

获取数据集的方法

private DataTable GetSPResult()
{
    DataTable ResultsTable = new DataTable();

    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connectionString"].ConnectionString);

    try
    {
        SqlCommand cmd = new SqlCommand("yourStorePorcedure", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@id", 1);
        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        adapter.Fill(ResultsTable);
    }

    catch (Exception ex)
    {
        Response.Write(ex.ToString());
    }
    finally
    {
        if (conn != null)
        {
            conn.Close();
        }
    }

    return ResultsTable;
}

将结果绑定到reportviewer

DataTable dt = GetSPResult();
ReportViewer1.Visible = true;
ReportViewer1.LocalReport.ReportPath = "Report1.rdlc";
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt));

将DataSet添加到项目中,然后向其添加tableadapter:

enter image description here

完成向导并使用存储过程

创建实体

然后确保将DataSet文件添加到您的rdlc

enter image description here

现在您需要设计并添加字段,否则它将为空白