在asp.net中使用报表查看器生成报表

时间:2013-10-06 18:37:47

标签: c# report-viewer2010

当我从我的页面的下拉列表中选择销售人员时,我想在我的管理面板中显示报告,但没有显示任何内容并在此处显示错误。

以下是我的代码:

protected void BtnViewReport_Click(object sender, EventArgs e)
{
    ReportViewer1.ProcessingMode = ProcessingMode.Local;
    ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/SalesPerson.rdlc");
    DataSet ds = GetData("select * from customer_new where salesperson in (select +
    email from Registration where name='" + ddsalesperson.SelectedValue.ToString() + 
    "')");
    ReportDataSource datasource = new ReportDataSource("customer_new",ds.Tables[0]);
    ReportViewer1.LocalReport.DataSources.Clear();
    ReportViewer1.LocalReport.DataSources.Add(datasource);
}
private DataSet GetData(string query)
{
    string conString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
    SqlCommand cmd = new SqlCommand(query);
    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlDataAdapter sda = new SqlDataAdapter())
        {
            cmd.Connection = con;
            sda.SelectCommand = cmd;
            using (DataSet ds = new DataSet())
           {
                  sda.Fill(ds, "customer_new");
                  return ds;
            }
        }
    }
}

我收到以下错误:

  

尚未为数据源提供数据源实例   '数据集1'。

1 个答案:

答案 0 :(得分:0)

该错误表示数据集“DataSet1”尚未收到数据。我猜测数据集“customer_new”实际上并不存在,或者如果它确实存在2个数据集,其中一个数据集可能会或可能不会使用。 尝试:

ReportDataSource datasource = new ReportDataSource("DataSet1",ds.Tables[0]);