当前位置:编程学习 > C#/ASP.NET >>

水晶报表数据库连接问题

我手上有一个项目是使用vs2005+CR10的,没有用RAS,项目中所有的报表文件都是ODBC的连接方式,
加载报表的程序里面通过SetDataSource(DataSet)设置报表数据源后,
ReportDocument.Database.Tables[0].LogOnInfo.ConnectionInfo.Attributes["Database DLL"]就变成啦"crdb_adoplus.dll",报表在运行时改变数据库连接方式为ado.net。

现在我想把水晶报表升级为XI R2,安装Crystal Report XI R2 开发人员版(有ado.net连接方式)以及CrystalReports11_5_NET_2005后,用上面同样的方法,但是报表的数据库连接方式在运行时没有改变还是ODBC。
希望大家能解答一下我困惑:
1.SetDataSource能够改变数据库连接方式,是不是在CR 10中才能生效?
2.不用RAS中的ReportclientDocument,是否还有其他方法在运行时修改报表的连接方式
--------------------编程问答-------------------- 自己顶下,怎么没人啊? 

难道这个帖子的标题太烂啦? --------------------编程问答-------------------- 主要是你的问题难度太大了。而高手周末都在睡懒觉。

不信你问一下“学.net好还是学JAVA好”,肯定有很多人回答。 --------------------编程问答-------------------- 汗。。。没踩好点啊 --------------------编程问答-------------------- 楼主能用到RAS,已经比很多使用水晶报表工具的朋友多做了很多东西了。
当然,除非一些特殊的需要,我们也不建议使用RAS。

这个问题我没去回答是因为我家里的机器上没CR11的环境,
毕竟这个东西还是要实际操作下才有可信。
不过平时地话我们倒不会去这么实现,这样虽然省去了ado.net模式下需创建dataset结构的这个步骤
但是在后期的数据库身份认证(当然,ODBC倒不需要)等环节可能就会出现楼主的问题。

--------------------编程问答--------------------
引用 4 楼 babyt 的回复:
楼主能用到RAS,已经比很多使用水晶报表工具的朋友多做了很多东西了。
当然,除非一些特殊的需要,我们也不建议使用RAS。

这个问题我没去回答是因为我家里的机器上没CR11的环境,
毕竟这个东西还是要实际操作下才有可信。
不过平时地话我们倒不会去这么实现,这样虽然省去了ado.net模式下需创建dataset结构的这个步骤
但是在后期的数据库身份认证(当然,ODBC倒不需要)等环节可能……

我有尝试去改成ODBC模式,但是遇到啦很郁闷的问题,就是你说的数据库身份认证。。。
设置loginfo后,通过dc.SetDataSource(ds)打开报表还是会弹出数据库登录框(报表包含2个不相关的数据表)。
后来改成
        CrystalDecisions.CrystalReports.Engine.Table table = dc.Database.Tables[0];
        table.SetDataSource(ds.Tables[0]);
        CrystalDecisions.CrystalReports.Engine.Table table1 = dc.Database.Tables[1];
        table1.SetDataSource(ds.Tables[1]);
报表能够正常打开但是2个表的数据都不会显示,单独绑定一个表就可以显示出来。。。
放在循环中绑定就只会显示第一个。。,
        foreach (CrystalDecisions.CrystalReports.Engine.Table crtable in dc.Database.Tables)
        {
            crtable.SetDataSource(ds.Tables[crtable.Name]);
        }
阿泰能帮忙解决下吗? --------------------编程问答-------------------- 你的写法和我不是一个门派的。。容我想想 :)

你现在目标就是:
用ODBC的方式设计报表,然后用SetDataSource的方式传数据给他,对吧? --------------------编程问答-------------------- 是的 

因为报表有200+,希望能够只修改程序就搞定升级问题。
运行时修改成ado路子走不通,现在就省下ODBC啦。
补充:.NET技术 ,  图表区
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,