未提供数据源实例的数据源“请求” [英] A data source instance has not been supplied for the data source 'Request'

查看:274
本文介绍了未提供数据源实例的数据源“请求”的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到一个错误报告查看器,我不知道如何纠正这个....
我得到的错误是:数据源实例尚未提供给数据源'请求'。
我已经尝试搜索这个,但找不到任何可以看到这是错的,有人可以指出我正确的方向吗?这是我的报告人的样子:

 < rsweb:ReportViewer ID =rptViewerrunat =serverHeight = 654px
Width =924pxFont-Names =VerdanaFont-Size =8pt
InteractiveDeviceInfos =(Collection)WaitMessageFont-Names =Verdana
WaitMessageFont-Size =14pt>
< LocalReport ReportPath =Report.rdlc>
< / LocalReport>



这是我使用的代码对于reportviewer:

  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();
}

}
私有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。请求ID 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。请求ID 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);


它正在抛出相同的错误。 p>

解决方案:



在我的代码中,我从 dsData1 更改了ReportDataSource的参数到 dsClientPayList (与RDLC中相同)。

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

它的作品



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



感谢
快乐编码:)


I'm getting an error on my reportviewer which I am not sure how to correct this.... The error that I am gettings is : " A data source instance has not been supplied for the data source 'Request'." I have tried searching for this, but can't find anything that I can see that is wrong, can somebody please point me in the right direction? This is how my reportvierer looks like:

    <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>

This is the code I use for the reportviewer:

    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();
}

Any help will be greatly appreciated.

EDIT-----------------------

this does not work either:

    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;
}

解决方案

I was also facing this problem that's why I came here.

I figure out the problem and I am posting that here to help some one who get this type of issue.

  1. My data source of RDLC was "dsClientPayList"
  2. I was adding the data source in my code behind like:

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

and it was throwing same error.

Solution:

In my code behind I changed the parameter of ReportDataSource from "dsData1" to "dsClientPayList" (same as in RDLC).

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

And it works

Conclusion: The DataSource name must be same in both RDLC and ReportViewer.

Thanks Happy Coding :)

这篇关于未提供数据源实例的数据源“请求”的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆