【发布时间】:2015-05-20 22:10:33
【问题描述】:
using (SqlConnection conn = new SqlConnection(connection))
{
SqlDataAdapter da = new SqlDataAdapter();
DataTable ds = new DataTable();
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
conn.Open();
cmd.CommandText = StoredProcedure;
cmd.CommandType = System.Data.CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@iDomainID", 1));
foreach (var item in reportParams)
{
cmd.Parameters.Add(new SqlParameter("@" + item.ParameterName, "'" + item.FieldValue + "'"));
}
da.SelectCommand = cmd;
da.Fill(ds);
conn.Close();
string strFile;
strFile = "Reports/" + ReportName;
ReportViewer1.Visible = true;
System.IO.StreamReader sr = new System.IO.StreamReader(HttpContext.Current.Server.MapPath("/") + strFile);
string strReportdef = sr.ReadToEnd();
sr.Close();
ReportViewer1.LocalReport.EnableExternalImages = true;
ReportViewer1.LocalReport.ReportPath = HttpContext.Current.Server.MapPath("/") + strFile;
int iTables = 0;
System.Collections.Generic.IList<string> ilReportDSs = ReportViewer1.LocalReport.GetDataSourceNames();
for (iTables = 0; iTables < ds.Columns.Count; iTables++)
{
ReportDataSource rdSource = new ReportDataSource(ilReportDSs[iTables], ds.Columns[iTables]);
ReportViewer1.LocalReport.DataSources.Add(rdSource);
}
ReportViewer1.DataBind();
}
这会导致错误
for (iTables = 0; iTables < ds.Columns.Count; iTables++)
{
ReportDataSource rdSource = new ReportDataSource(ilReportDSs[iTables], ds.Columns[iTables]);
ReportViewer1.LocalReport.DataSources.Add(rdSource);
}
对于ReportDataSource rdSource = new ReportDataSource(ilReportDSs[iTables], ds.Columns[iTables]);
我应该如何将数据表传递给报表查看器?试图将其更改为数据集,但这会引发使用数据集执行存储过程的错误我将如何使用数据表传递..?
【问题讨论】:
标签: sql asp.net reporting-services datatable ssrs-2008