报告查看器控制 - 发送参数的数据集存储过程 [英] Report Viewer Control - Send parameter to stored procedure in DataSet
问题描述
我有我的ASP.NET Web表单应用程序中创建一个本地.rdlc报告。
I have created a local .rdlc report within my ASP.NET web form application.
我要加载使用ReportViewer控件的报告。我在数据库中使用存储过程获取数据,我的报表数据集。存储过程需要一个参数,以从表中返回单个数据行。我希望能够到这个参数编程方式传递给存储过程,该报告将加载数据。
I want to load a report using the ReportViewer Control. I am getting the data for my Report DataSet using a stored procedure in the database. The stored procedure needs a parameter to return a single data row from the table. I want to be able to pass this parameter to the stored procedure programmatically so that the report will load the data.
我如何做到这一点?
推荐答案
您的ASPX的ReportViewer
Your reportViewer on ASPX
<rsweb:ReportViewer ID="ReportViewer1" runat="server" SizeToReportContent="True">
</rsweb:ReportViewer>
方法来获取数据集
Method to get data set
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
Bind result to reportviewer
DataTable dt = GetSPResult();
ReportViewer1.Visible = true;
ReportViewer1.LocalReport.ReportPath = "Report1.rdlc";
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", dt));
这篇关于报告查看器控制 - 发送参数的数据集存储过程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!