c# - 尚未为数据源 'Request' 提供数据源实例

标签 c# datatable datasource reportviewer rdlc

我的报告查看器出现错误,我不确定如何更正此错误.... 我得到的错误是:“没有为数据源‘请求’提供数据源实例。” 我试过搜索这个,但找不到任何我能看到的错误,有人可以指出我正确的方向吗?这是我的 reportvierer 的样子:

    <rsweb:ReportViewer ID="rptViewer" runat="server" Height="654px" 
Width="924px" Font-Names="Verdana" Font-Size="8pt" 
    InteractiveDeviceInfos="(Collection)" WaitMessageFont-Names="Verdana" 
    WaitMessageFont-Size="14pt">
    <LocalReport ReportPath="Report.rdlc">
    </LocalReport>

这是我用于报告查看器的代码:

    SqlConnection conn;

protected void Page_Load(object sender, EventArgs e)
{
    conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);

    conn.Open();

    if (!Page.IsPostBack)
    {
        runRptViewer();
    } 

}
    private DataTable getData()
{
    DataSet dss = new DataSet();
    string sql = "";
    sql = "SELECT CC_Request.Company, CC_Request.Attention, CC_Request.Telephone, CC_Request.Email, CC_Items.Model, CC_Items.SerialNo, CC_ItemsRequested.Item, CC_ItemsRequested.Quantity, CC_ItemsRequested.Price, CC_ItemsRequested.ModelID, CC_Items.RequestID FROM CC_Request INNER JOIN CC_Items ON CC_Request.RequestID = CC_Items.RequestID INNER JOIN CC_ItemsRequested ON CC_Items.ModelID = CC_ItemsRequested.ModelID WHERE (CC_Request.Company = 'Alpha') AND (CC_ItemsRequested.ModelID = 20) AND (CC_Items.RequestID = 1)";
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dss);
    DataTable dt = dss.Tables[0];
    return dt;
}

private void runRptViewer()
{
    this.rptViewer.Reset();
    this.rptViewer.LocalReport.ReportPath = Server.MapPath("Reports\\Report.rdlc");
    ReportDataSource rds = new ReportDataSource("dsNewDataSet_Table", getData());
    this.rptViewer.LocalReport.DataSources.Clear();
    this.rptViewer.LocalReport.DataSources.Add(rds);
    this.rptViewer.DataBind();
    this.rptViewer.LocalReport.Refresh();
}

任何帮助将不胜感激。

编辑------------------------

这也不起作用:

    private DataTable getData()
{
    DataTable dtable = new DataTable();
    dtable.TableName = "dtNewDataSet_Table";
    string sql = "";
    sql = "SELECT CC_Request.Company, CC_Request.Attention, CC_Request.Telephone, CC_Request.Email, CC_Items.Model, CC_Items.SerialNo, CC_ItemsRequested.Item, CC_ItemsRequested.Quantity, CC_ItemsRequested.Price, CC_ItemsRequested.ModelID, CC_Items.RequestID FROM CC_Request INNER JOIN CC_Items ON CC_Request.RequestID = CC_Items.RequestID INNER JOIN CC_ItemsRequested ON CC_Items.ModelID = CC_ItemsRequested.ModelID WHERE (CC_Request.Company = 'Alpha') AND (CC_ItemsRequested.ModelID = 20) AND (CC_Items.RequestID = 1)";
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dtable);
    DataTable dt = dtable;
    return dt;
}

最佳答案

我也遇到了这个问题,这就是我来这里的原因。

我找出了问题所在,并将其张贴在这里以帮助遇到此类问题的人。

  1. 我的 RDLC 数据源是“dsClientPayList”
  2. 我在后面的代码中添加了数据源,例如:

    ReportViewer1.LocalReport.DataSources.Clear(); 
    ReportDataSource rd = new ReportDataSource("dsData1", DAL.MyDBModel.snData().Tables[0]);
    ReportViewer1.LocalReport.DataSources.Add(rd);
    

它抛出同样的错误。

解决方法:

在我后面的代码中,我将 ReportDataSource 的参数从“dsData1”更改为“dsClientPayList”(与 RDLC 中相同)。

ReportDataSource rd = new ReportDataSource("dsClientPayList", DAL.MyDBModel.snData().Tables[0]);

它有效

结论:RDLC 和 ReportViewer 中的 DataSource 名称必须相同。

谢谢 快乐编码:)

关于c# - 尚未为数据源 'Request' 提供数据源实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15781133/

相关文章:

tomcat - grails:使用 tomcat 和 jndi 时找不到表

c# - 如何在 TPL 中使用 Parallel For 而不是 While

c# - ReSharper 无法解析符号

c# - 为什么我的文件在上传并转换为字节数组后大小不同?

c# - 如何计算 LINQ(到数据集)中数据表列的总和?

javascript - 数据表。在循环中隐藏/显示多行

c# - 我们如何在 VC++ 中使用 .NET dll?

vb.net - 在使用不同的查询再次填充数据表之前,我是否需要删除数据表?

.net - 在 Crystal Report 2008 中使用 .net 对象作为数据源

java - Spring Boot JPA 设置自定义数据源