Как я могу привязать набор данных с выделенным кодом к RDLC? - PullRequest
0 голосов
/ 13 февраля 2019

У меня есть страница, которая содержит раскрывающийся список и средство просмотра отчетов, и я использую dropdownlist.selectValue в качестве параметра для запроса и создания таблицы данных, которую я хочу

Мой вопрос: как связать код с данными datatableв RDLC и как показать на ReportViewer

Много погуглить и найти результат в шкафу https://blogs.msdn.microsoft.com/sqlforum/2011/04/27/walkthrough-assign-dataset-dynamically-created-in-code-to-your-local-report-with-reportviewer/

Только одна ошибка

this.DataTable1BindingSource.DataSource = ds;
this.reportViewer1.RefreshReport();

Я думаю, это точногде rdlc связывает мою закодированную таблицу данных.

Но я не могу найти DataTable1BindingSource

aspx

<asp:ScriptManager runat="server"></asp:ScriptManager> 
<rsweb:ReportViewer ID="ReportViewer1" runat="server" >
<LocalReport ReportPath="Report1.rdlc">
    <DataSources>
        <rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="DataSet1" />
    </DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="DataSet1TableAdapters."></asp:ObjectDataSource>

cs

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{  
code dataset and datatable here
}

Ожидайте rdlc связать моюсобственные закодированные данные

1 Ответ

0 голосов
/ 20 февраля 2019

Наконец, я решил переименовать мой набор данных с тем же именем в DataSet.xsd.Не только схема, вам нужно, чтобы имя набора данных в вашем коде совпадало с именем в файле xsd.

Например: Создать DataSet1.xsd содержит набор данных с именем DataTable1 (имя по умолчанию)

и в вашем коде есть

DataSet DataSet1 = new DataSet("something");
DataTable DataTable1 = DataSet1.Tables.Add("something");

Если вы объявите другое имя отличным от имени, определенного в xsd, вы получите сообщение об ошибке в ReportViewer

A data source instance has not been supplied for the data source 'DataSet1'.
...