使用推模式给CrystalReportViewer添加报表文件时的问题

  水晶报表生成数据有两种模式,拉模式是在创建报表时指定数据库连接及要显示的内容,是不能从一个报表文件满足多个查询条件的显示的,而推模式可以(关于这两种模式,[url=http://blog.csdn.net/mybabyes/archive/2009/07/29/4392297.aspx]链接网站[/url]上有详细介绍).我在使用推模式时,是想先建立一个空白的报表文件,然后在程序中为其填充数据我是如下实现的:

开发环境是VS 2005,数据库是SQL 2000,报表文件是通过添加新项,在模板中选择的.

                    SqlConnection con = new SqlConnection(this.m_strcon);

                    con.Open();

                    string strName = this.m_CurrentNode.Text;

                    DateTime dtBegin = dateTimePicker1.Value;

                    DateTime dtEnd = dateTimePicker2.Value;

                    strsql = "select Name,AirFlagOn,AirTime from tb_AirRealData where Name='" + strName + "' and (AirTime between '" + dtBegin + "' and '" + dtEnd + "')";

                   DataSet ds = new DataSet();

                   SqlDataAdapter da = new SqlDataAdapter(strsql, con);

                   da.Fill(ds);

                   DataTable dt = ds.Tables[0];

                   int nCount = dt.Rows.Count;

                   CrystalReport2 cr = new CrystalReport2();

                   cr.Load(Application.StartupPath + "CrystalReport2.rpt");

                   cr.SetDataSource(ds);//此位置报错

                   this.crv_HistoryData.ReportSource = cr;

但早会有异常:[CrystalDecisions.CrystalReports.Engine.DataSourceException] = {"该报表不包含表。"}

调试中dataset中是有数据的,问题应当是空白报表CrystalReport2 的问题,请教一下,问题在哪儿呢?

尝试过通过报表专家给空报表添加数据表,也不行,而且这样也限制了只能指定数据库连接,而不能使用客户自己数据库.

 

还是我上面的思路不通呢?

 

如果为每种查询都创建一个报表文件,会出现两个问题:1,多种查询就需要很多报表文件,这样会影响程序运行速度.2,用拉模式在创建报表文件时就指定数据库连接和表,是视化实现的,不能传入数据库连接的参数,这样在本机上可用,换个电脑,软件就不能运行了,用远程应当不是很方便的.

 

请教高手给指点一下,谢谢!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值