Я хотел бы привязать динамически набор данных к rdlc.Я могу просмотреть отчет, если использую встроенный источник данных в файле ASPX (статическое связывание).Однако, если я использую следующие коды, средство просмотра отчетов продолжает отображать изображение «Загрузка ..».
Я уже проверил имя набора данных, и если я изменил имя набора данных на «Orders2», он показывает, чтоТребуемый набор данных "Заказы" не предоставляется.Итак, я добавляю GridView в форму и проверяю мой DataSet.Набор данных содержит данные и хорошо отображается с помощью GridView.
Проблема только в отчете, и я не смог динамически привязать данные к ReportViewer.Пожалуйста, помогите мне.Спасибо.
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = GetDataSet();
ReportDataSource rds = new ReportDataSource("Orders", ds.Tables[0]);
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(rds);
ReportViewer1.LocalReport.Refresh();
GridView1.DataSource = ds;
GridView1.DataBind();
}
private DataSet GetDataSet()
{
var conString = ConfigurationManager.ConnectionStrings["dotnetConnectionString"];
string strConnString = conString.ConnectionString;
SqlConnection conn = new SqlConnection(strConnString);
conn.Open();
string sql = "Select * FROM Orders";
SqlDataAdapter ad = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
ad.Fill(ds);
return ds;
}
Коды ASPX указаны ниже:
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" Height="600px" Width="800px">
<LocalReport ReportPath="Reports\Report.rdlc">
<DataSources>
<rsweb:ReportDataSource />
</DataSources>
</LocalReport>
</rsweb:ReportViewer>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>