winForm里水晶报表加载失败

XIAO_Zzz_ 暂无  2015-04-13 03:30:03
求指点。。


private void Form_PushReport_Load(object sender, EventArgs e)
{
SqlConnection conn = DBConnection.MyConnection();
conn.Open();

try
{
string sql = "SELECT * FROM "+table;//table是表的名字的字符串
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();
sda.Fill(ds, "tmpTable");
string reportPath = System.Windows.Forms.Application.StartupPath + @"CrystalReport_Push.rpt";
ReportDocument rd = new ReportDocument();
rd.Load(reportPath);
rd.SetDataSource(ds.Tables[0].DefaultView);
this.crystalReportViewer1.ReportSource = rd;
}
catch (Exception ex)
{
throw new Exception(ex.Message.ToString());//一直抛出异常,提示报表加载失败
}
finally
{
conn.Close();
}
}


ReportDocument rd = new ReportDocument(); 原先这里提示未引用,然后我加了using CrystalDecisions.CrystalReports.Engine;这里没错误了,可运行时抛出异常,加载失败
...全文
171 点赞 收藏 11
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
XIAO_Zzz_ 2015-04-15

string sql = "SELECT * FROM "+table;//table是表的名字的字符串
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
DataSet ds = new DataSet();//DataSet是在vs中添加的数据集
sda.Fill(ds, "tmpTable");
这些代码不能将table中的数据写到ds中吗?
回复
XIAO_Zzz_ 2015-04-15
各位,我想确定一下,push模式是 建一个DateSet ,在里面加一个新表table1,自己定义下字段;建crystalReport,将DateSet的table1链到该crystalReport;在窗体Form1拖入crystalReportViewer1;然后就是在窗体的Load函数中写代码了吧,现在没有异常了,只是报表中是一个空表,只有table1的字段。。
回复
XIAO_Zzz_ 2015-04-15
报表预览没有数据,数据源里是有的
回复
江南小鱼 2015-04-14
引用 7 楼 u010731949 的回复:
按你的改了,现在问题成了 该报表中不包含表 但是dataSet里有数据啊。。
1、报表预览有数据么? 2、运行过程中,报表的数据源有记录么?
回复
XIAO_Zzz_ 2015-04-14
按你的改了,现在问题成了 该报表中不包含表 但是dataSet里有数据啊。。
回复
EdsionWang 2015-04-13
路径错误。将你的rpt文件放到bin/Debug目录下,或者

 rd.Load(AppDomain.CurrentDomain.BaseDirectory + "/CrystalReport1.rpt");
回复
enaking 2015-04-13
水晶报表文件路径有不对
回复
XIAO_Zzz_ 2015-04-13
CrystalReport_Push.rpt // is this?
回复
江南小鱼 2015-04-13
看下reportPath的值,有没有对应的报表文件?
回复
XIAO_Zzz_ 2015-04-13
回复
江南小鱼 2015-04-13
catch出来的什么异常?
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2015-04-13 03:30
社区公告

让您成为最强悍的C#开发者