未提供数据源实例的数据源“请求” [英] A data source instance has not been supplied for the data source 'Request'
问题描述
我收到一个错误报告查看器,我不知道如何纠正这个....
我得到的错误是:数据源实例尚未提供给数据源'请求'。
我已经尝试搜索这个,但找不到任何可以看到这是错的,有人可以指出我正确的方向吗?这是我的报告人的样子:
< 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;
}
我也面临这个问题这就是为什么我来到这里。
我弄清楚了这个问题,我在这里发贴,帮助那些获得这种类型问题的人。
- 我的数据源RDLC是dsClientPayList
-
我正在添加数据源代码中的代码如下:
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.
- My data source of RDLC was "dsClientPayList"
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屋!