Как передать параметр в отчет RDLC с динамически созданным набором данных в качестве источника данных
В моем приложении Windows Forms я хочу создать отчет. я создал файл .rdlc и назначил ему "фиктивный" набор данных в качестве источника данных только для того, чтобы получить схему, как описано здесь :
http://blogs.msdn.com/b/sqlforum/archive/2011/04/28/sql-reporting-services-ssrs-bind-dynamic-dataset-to-your-local-report-with-reportviewer.aspx[^]
я хочу динамически изменять источник данных моего отчета в коде. я нашел много примеров, таких как следующие:
private DataTable getData() { DataSet dss = new DataSet(); string sql = ""; sql = "SELECT ID, CLIENT_ID, AGENT_ID FROM TBLMAILDELETED"; OdbcDataAdapter da = new OdbcDataAdapter(sql, conn); da.Fill(dss); DataTable dt = dss.Tables[0]; return dt; } private void runRptViewer() { this.ReportViewer1.Reset(); this.ReportViewer1.LocalReport.ReportPath = Server.MapPath("Report.rdlc"); ReportDataSource rds = new ReportDataSource("dsNewDataSet_Table", getData()); this.ReportViewer1.LocalReport.DataSources.Clear(); this.ReportViewer1.LocalReport.DataSources.Add(rds); this.ReportViewer1.DataBind(); this.ReportViewer1.LocalReport.Refresh(); }
я хочу разместить подобный код при нажатии кнопки. мой вопрос таков:
если я хочу добавить параметр, значение которого вводится в текстовое поле формы, как это лучше всего сделать?
1 - Должен ли я добавить его в код в качестве параметра в моем DataAdapter, и тогда мой запрос будет иметь предложение where, которое использует этот параметр для фильтрации результатов ?
2 - должен ли я создать ReportParameter и добавить его в свой файл .rdlc? если да, то как это изменит код? и как это должно повлиять на мой запрос DataAdapter?
заранее спасибо