【发布时间】:2016-01-22 01:36:19
【问题描述】:
我正在尝试制作一个程序,将数据表的数据放入水晶报表中。代码如下:
ReportDocument report_doc = new ReportDocument();
report_doc.Load(Server.MapPath("Trtp.rpt"));
string[] columns = new string[] { "col1", "col2", "col3", "col110", "col111" };
DataTable dt = new DataTable();
int count = columns.Count();
for (int i = 0; i < count; i++)
dt.Columns.Add(columns[i], typeof(string));
myConnection.comm.CommandText = @"select col1,col2,col3.col110,col111 from TabledataT where " + query;
myConnection.reader = myConnection.comm.ExecuteReader();
dt.Load(myConnection.reader);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
report_doc.SetDataSource(ds.Tables[0]);
CrystalReportViewer1.ReportSource = report_doc;
CrystalReportViewer1.RefreshReport();
在aspx页面中:
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="true" />
错误在这一行
report_doc.SetDataSource(ds.Tables[0]);
错误:
The report has no tables
这是我第一次尝试创建使用水晶报表的程序,所以对它没有太多了解。
为什么会出现这个错误?
谢谢
【问题讨论】:
-
您是否在填充数据表之前尝试将数据表添加到数据集中?意思是先将数据表添加到数据集中而不是添加到数据集中
-
我试过了,还是一样的错误!!
-
问题可能是多种原因。如果报告设计不正确,您将收到此错误,如果数据源有任何问题,您将收到此错误。尝试合并数据集中的数据表而不是添加它,例如 ds.Tables[0].Merge(dt);并尝试检查 ds.tables.count 是否有
-
@Angloos,我是否需要在
Trtp.rpt文件中配置任何内容,因为我只是添加了它而没有在报告上做任何事情。那么,这可能是问题所在吗?我需要在Trtp.rpt中创建任何表吗? -
嗯取决于你想用它做什么。如果它只是显示数据表数据,这应该是直接的方式。
标签: c# asp.net crystal-reports