水晶报表连数据库急急急

axxaxxaxxx 2008-11-17 01:48:36
我用vs2005C#建水晶报表,用的是本地程序,即form.开始建了.xsd数据集。然后建水晶报表,报表连到该数据集。所用代码如下:
DataSet dss = new DataSet();
string strSql = "select * from Employees_Info";
dss = SQLServerHelper.ExecuteDataSet(SQLServerHelper.ConnectionString, CommandType.Text, strSql, null);// SQLServerHelper函数是写好的,用此方法可正常连数据库,我建了个datagridview能返回数据并显示。

//向报表传数据。
CrystalReport1 CrystalReport11 = new CrystalReport1();
CrystalReport11.SetDataSource(dss);
crystalReportViewer1.ReportSource = CrystalReport11;

一开始一切正常,但是后来表换了,我从建了链接,基本代码、方法都没变。但是现在运行时,dss能得到数据,用datagridview也能显示,但就是报表没数据,为什么?
还有用此方法连数据库后,在做报表时,拖字段,在字段上右键点“数据参照”,看不到数据正常吗?(即用DataSet传数据是否是运行时才能看到数据)我觉得默认应该能看到所有数据把?
整了2天了,一直看不到数据,还不清楚错在哪(没抱错),快郁闷疯了。急求高手解救!!!!!
...全文
65 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿泰 2008-11-17
  • 打赏
  • 举报
回复
你表换了以后,xsd 重建过吗?
还是Employees_Info这个名称吧?

代码可以不变,但是必须保证两次取出的数据里的datatable名称是一样的。

你将你新的代码里的
string strSql = "select * from 新表名 as Employees_Info"; 这样看看

另外,还需要保证各字段对应名称是一样的,如果不一样,就使用别名保证记录集里的字段名逐一对应dataset里的字段名。
boyle0630 2008-11-17
  • 打赏
  • 举报
回复
给你一点参照:

ReportDocument cr = new ReportDocument();//命名空间为CrystalDecisions.CrystalReports.Engine;
cr.Load(Server.MapPath(@"Reports\Report1.rpt"));//这个参数为rpt文件的正确路径
DataSet dstRpt = new DataSet();
DataTable dtblTmp1 = PsGetData("sp_SaleDepartmentMonthCross", paramArea);//PsGetData得到一个datatable
dstRpt.Tables.Add(dtblTmp1);
dtblTmp1.TableName = "Table1";//这个表名一定要与.xsd数据集里的表名相同,一定!
...//其它参数
cr.SetDataSource(dstRpt);
CrystalReportViewer1.ReportSource = cr;
//CrystalReportViewer1.ParameterFieldInfo = paraFields;
CrystalReportViewer1.DataBind();

还有你查查字段的数据类型与.xsd数据集的是否一致

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧