报表连接异常

cindyAng 2005-06-14 09:44:20
在创建CrysterReport1.rpt文件时,连SQL的数据库表明明是正确的,成功的,但是用控件CrystalReportViewer1绑定时却出现这样的页面,页面提示如下
异常详细信息: CrystalDecisions.CrystalReports.Engine.LogOnException: 登录失败。

这是什么原因?
...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zeusvenus 2005-06-30
  • 打赏
  • 举报
回复
leftfist(左直拳)说:

水晶报表屡屡提示登录失败的问题现在终于告一段落了。症结在于部署包做的不全。但我也认为水晶报表的部署实在是太难,相关的资料又不齐,如果不是运气好的话,真不知道搞到什么时候!我将我的部署包介绍一下,希望能对大家有一点帮助。

我做了两个安装包。

包一:

1、打开VS.NET,新建-》项目-》安装部署项目,选“安装项目”

2、项目生成后,用鼠标右击安装项目,选“添加”-》“合并模块”

3、选择以下合并模块:
Crystal_Database_Access2003_chs.msm
Crystal_Managed2003_chs.msm
Crystal_regwiz2003.msm
DotNETCrystalReports.msm

这时项目会自动检测到依赖项:
Crystal_Database_Access2003.msm
Crystal_managed2003.msm

注意:标有2003字样的合并模块需要安装了VS.NET2003才有。我自己的机器是WIN2000,VS.NET2002,装有水晶报表9.2,
而我同事的机器是WIN2003,VS.NET2003,他的水晶报表跟我的是同一张安装盘,但彼此的合并模块居然不一样!

4、然后编译、生成


包二:

1、打开VS.NET,新建-》项目-》安装部署项目,选“安装项目”

2、项目生成后,用鼠标右击安装项目,选“添加”-》“合并模块”

3、选择以下合并模块:
reportengine_chs.msm,
crnetruntime_chs.msm
license_chs.msm
mapping_chs.msm (可选,当在报表中使用了geographic maps时)
VC_CRT.msm、VC_STL.msm( 如果您部署的 Windows 应用程序使用 ADO.NET 数据集,则还需要包括 VC_CRT 和 VC_STL 合并模块)

注意:以上合并模块需要到crystal的官方网站support.crystaldecisions.com下载一个包cr9netmergemodules_chs.zip。

4、然后编译、生成

在部署机器上依次安装包一、包二,问题得以解决。注意如果之前有安装其他包,请务必卸载净尽再安装这两个包。有意思的是,两个包都安装好后,
将包一卸载,水晶报表仍然运行正常。不知道什么原因。

或许将两个包的内容合在一起也可以?我实在没有兴趣和机器再去测试了。如果有人试验过,不防告诉大家。

我讨厌水晶报表。
zeusvenus 2005-06-30
  • 打赏
  • 举报
回复
海波.NET 问题:
安全之道:crystalreport 的集成认证如何与NT(2K)SERVER集成??
——————————————————————————————————————
安全三要素:
模拟,验证,授权
——————————————————————————————————————
如果运行 ASP.NET 程序,还需要为 ASPNET 账号——运行 ASP.NET 模拟的账号,做下述设置:

1、通过 Web 访问服务器,访问者默认“模拟”的是——Internet 来宾帐号,账号名:IUSR_计算机名;
2、“IUSR_计算机名”账号要访问 SQL SERVER,必须为该帐号建立“登录”(验证也!);
3、并授予“服务器角色”和“数据库访问许可”、“数据库角色”(授权也)!
——————————————————————————————————————
参考:
1、匿名访问 Web 所模拟的账号
账号名:IUSR_计算机名
zeusvenus 2005-06-30
  • 打赏
  • 举报
回复
彻底解决 CrystalReports 登录失败问题(海波.NET)

问题:
CrystalReports 登录失败
---------------------------------------------------------------
原因一: NTFS 文件夹权限的问题!
文件夹:
VS.NET Crystal Reports:
C:\Program Files\Microsoft Visual Studio .NET\Crystal Reports\Viewers
Crystal Reports 9.2:
C:\Program Files\Common Files\Crystal Decisions\2.0\crystalreportviewers
设置上述文件夹的“安全”,即NTFS 文件夹权限的问题!
1、添加当前用户,比如 Administrator,,权限“写入”;
2、添加用户 ASPNET、SYSTEM,权限“写入”!
---------------------------------------------------------------
原因二:数据库登录问题
在报表的cs文件中,加上数据库连接。
1.TableLogonInfo
.使用TableLogonInfo
Dim ReportDoc As New ReportDocument()
Dim logonInfo As New TableLogonInfo
Dim table As table
ReportDoc.Load("C:\Rpts\publish.rpt")
For Each table IN ReportDoc.DataBase.Tables
logonInfo= table.LogonInfo
with logonInfo.connectioninfo
.serverName= "Localhost"
.Databasename= "pubs"
.UserID= "sa"
.Password=""
End With
table.applyLogonInfo(logonInfo)
next table
Crviewer.reportsource= reportDoc
2.如果是多個相關表格生成的報表,最好以存儲過程為數據源建立報表


代码放在 Page_load 事件里!
试试 info.ConnectionInfo.ServerName = "Localhost"
用户名和密码的正确性再确定一下!
——————————————————————————————————————
调试成功后,可以考虑:
将“数据库连接信息”存放在 web.config 配置文件,容易维护
——————————————————————————————————————
using CrystalDecisions.Shared ; //负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports.Engine ; //负责解释ReportDocument类

private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path;
path=Server.MapPath ("cr.rpt");
oRpt.Load (path);

//从web.config中获取logOnInfo参数信息
string a,b,c,d;
//获取ServerName
a=System.Configuration.ConfigurationSettings.AppSettings ["servername"];
//获取DatabaseName
b=System.Configuration.ConfigurationSettings.AppSettings ["database"];
//获取UserId
c=System.Configuration.ConfigurationSettings.AppSettings ["userid"];
//获取password
d=System.Configuration.ConfigurationSettings.AppSettings ["pass"];
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = a;
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
logOnInfo.ConnectionInfo.Password = d;

oRpt.Database .Tables [0].ApplyLogOnInfo (logOnInfo);

//建立.rpt文件与CryStalReportviewer文件之间的连接
CrystalReportViewer1.ReportSource = oRpt;

DataBind();
}
xwdd129 2005-06-16
  • 打赏
  • 举报
回复
直接连接是容易有问题,尽量使用推模式
landlordh 2005-06-16
  • 打赏
  • 举报
回复
如楼上所说

否则要加入正确的logon信息
delbrueck 2005-06-14
  • 打赏
  • 举报
回复
我记得好象是要打个补丁的,你搜索一下以前的帖子

4,816

社区成员

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

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