CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

关于多个表关联的水晶报表的棘手问题,请各位大师给一个答案,很急!

楼主yanjz(小)2003-12-01 13:58:14 在 .NET技术 / ASP.NET 提问

以下是我的代码:  
        OdbcDataAdapter   Adapter;   //我是用Oracle数据库的  
        DataSet   ds   =   new   DataSet();  
        rptSearch   rd   =   new   rptSearch();//这是我水晶报表的名字,它的里头只添加了多个表关联的字段名  
        //string   szSql=""select*from   "SYS"."QRY_EQUISTATE"where   "INTAPPMODE"='3'   and   "CHREQUITYPE"   like   '%'   and   "BTYPE"   LIKE   '%101006'   AND   "VCHPRODUCTOR"   LIKE   '%'   and   "CHRSTOREID"   LIKE   '%'   Order   By   "CHRID"   DESC"";  
  //上面的“QRY_EQUISTATE”是视图,它只是把多个关联的表合成一张表;  
  //下面的Session["StoreSql"]等于szSql;    
        string   szSql   =   (string)Session["StoreSql"];  
      OdbcConnection   Conn=new   OdbcConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnString"].ToString());//连接字符串  
      Conn.Open();  
      Adapter   =   new   OdbcDataAdapter(szSql,Conn);  
      Adapter.Fill(ds,"QRY_EQUISTATE");  
   
      rd.SetDataSource(ds.Tables[0]);    
   
      rptView.ReportSource   =   rd;  
   
      rptView.RefreshReport();  
      rptView.DataBind();  
      rptView.DisplayGroupTree=   false;  
    加载它总是提示“登录失败",你们看一下哪个地方不对,请你们指正,多谢! 问题点数:0、回复次数:6Top

1 楼yanjz(小)回复于 2003-12-01 14:05:32 得分 0

这里我说明一下,上面的szSql语句执行是对的,多谢各位!Top

2 楼bobjeey(三十年河东,三十年河西)回复于 2003-12-01 14:07:55 得分 0

服务器端的水晶报表没有注册,如果没有注册吗,最笨的方法就是在服务器上用vs那7张盘安装一下水晶报表Top

3 楼yanjz(小)回复于 2003-12-01 14:14:56 得分 0

我注册过了,不知道是不是服务器端,那怎么注册服务器端呢?Top

4 楼yanjz(小)回复于 2003-12-01 15:06:31 得分 0

没人答复吗?Top

5 楼haibodotnet(海波.NET)回复于 2003-12-01 22:22:32 得分 0

彻底解决   CrystalReports   登录失败问题(海波.NET,更新:2003-11-07-01)  
  ---------------------------------------------------------------  
  目录:  
  一、Crystal   Reports   9   最新补丁下载(搜集:海波.NET)  
  二、原因1:文件夹   NTFS   权限的问题。  
  三、原因2:PULL   模式,水晶报表中的数据库登录问题(非   Windows   集成身份验证)。  
  四、原因3:PUSH   模式设置了   TableLogOnInfo,不需要!  
  五、出错:部署到其它计算机,产生问题:连接失败。错误的登录参数。  
  六、安全之道:crystalreport   的集成认证如何与NT(2K)SERVER集成?  
  七、原因4:PULL   模式,水晶报表中的数据库登录问题(Windows   集成身份验证)。  
  ---------------------------------------------------------------  
  问题:  
  CrystalReports   登录失败  
  LogOnException  
  ---------------------------------------------------------------    
  一、Crystal   Reports   9   最新补丁下载  
  (1)Crystal   Reports   9   Database   and   Export   Drivers   Monthly   Hot   Fix  
  http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90dbexwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90dbexwin_en.zip  
  (2)Crystal   Reports   9   Developer   Files   Monthly   Hot   Fix  
  http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90devwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90devwin_en.zip  
  (3)Crystal   Reports   9.0   Main   Program   Files   Monthly   Hot   Fix  
  http://support.crystaldecisions.com/communityCS/FilesAndUpdates/cr90mainwin_en.zip.asp?recDnlReq=Record&dnlPath=cr90mainwin_en.zip    
  ---------------------------------------------------------------    
  二、原因1:文件夹   NTFS   权限的问题。  
  1、水晶报表   Web   查看器文件夹   NTFS   权限的问题  
  (1)错误提示:  
  “/WebApplication1”应用程序中的服务器错误。  
      登录失败。    
      说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
      异常详细信息:   CrystalDecisions.CrystalReports.Engine.LogOnException:   登录失败。  
  (2)相关文件夹:  
  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  
   
  2、水晶报表文件所在的文件夹,或者导出时的目标文件夹   NTFS   权限的问题  
  (1)错误提示:  
  登录失败。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  
  异常详细信息:   CrystalDecisions.CrystalReports.Engine.LogOnException:   登录失败。  
   
  3、设置上述文件夹的“安全”,即   NTFS   权限:  
  最简单的办法是给   Everyone   用户加“完全控制”权限!  
  (1)为当前用户,如:Administrator,,添加“写入”权限;  
  (2)为用户   ASPNET、SYSTEM、匿名用户(通常为   IUSR_MACHINENAME)、经过身份验证的请求用户添加“写入”权限。  
  ---------------------------------------------------------------  
  三、原因2:PULL   模式,水晶报表中的数据库登录问题。  
  运行时登录数据库服务器的方法(PULL   模式)  
  在报表的cs文件中,加上数据库连接。  
  1、设置   ReportDocument   的   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、如果是多个相关的表作为报表的数据源,最好使用存储过程或者查询作为数据源。  
   
  3、将“数据库连接信息”存放在   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();  
  }  
  ---------------------------------------------------------------  
  四、原因3:PUSH   模式设置了   TableLogOnInfo,不需要!  
  因为数据源是   DataSet,不是数据库!  
  ---------------------------------------------------------------  
  五、出错:部署到其它计算机,产生问题:连接失败。错误的登录参数。  
  在开发机(2000)上运行,一切正常;移植到生产机(2003),就报错。错误提示:连接失败。错误的登录参数。  
  解决方案:  
  部署包少了点东西:  
  Crystal_Database_Access2003.msm  
  Crystal_Database_Access2003_chs.msm  
  这两个合并模块包含各种连接数据源的驱动。所以少了它,就老是提示登录失败(这种提示是不是很莫名其妙?)  
  ---------------------------------------------------------------  
  六、安全之道:crystalreport   的集成认证如何与NT(2K)SERVER集成??  
  --------------------------------------  
  安全三要素:  
  模拟,验证,授权  
  --------------------------------------  
  如果运行   ASP.NET   程序,还需要为   ASPNET   账号——运行   ASP.NET   模拟的账号,做下述设置:  
  1、通过   Web   访问服务器,访问者默认“模拟”的是——Internet   来宾帐号,账号名:IUSR_计算机名;  
  2、“IUSR_计算机名”账号要访问   SQL   SERVER,必须为该帐号建立“登录”(验证也!);  
  3、并授予“服务器角色”和“数据库访问许可”、“数据库角色”(授权也)!  
  --------------------------------------  
  参考:  
  1、匿名访问   Web   所模拟的账号  
  账号名:IUSR_计算机名  
  全名:Internet   来宾帐号  
  描述:匿名访问   Internet   信息服务的内置帐号  
  2、运行   ASP.NET   模拟的账号  
  账号名:ASPNET  
  全名:aspnet_wp   account  
  描述:运行   ASP.NET   工作进程的账号  
  ---------------------------------------------------------------  
  七、原因4:PULL   模式,水晶报表中的数据库登录问题(Windows   集成身份验证)。  
  1、错误提示:  
  “/MyWebApp”应用程序中的服务器错误。  
  用户   'PYPC101\ASPNET'   登录失败。    
  2、问题分析:  
  设计水晶报表时,在“数据库专家”的“连接信息”里使用了“集成安全”,即   Windows   集成身份验证。  
  3、解决方案:  
  要为   ASPNET   账号增加数据库登录和访问权限……  
  但这样不太适用,设计时最好使用数据库服务器的身份验证,用服务器的账号登录,比如:sa!  
  4、参考:三、原因2:水晶报表中的数据库登录问题。Top

6 楼yanjz(小)回复于 2003-12-01 22:52:46 得分 0

我要的是针对标题的答复,不是这种没头绪没地方下手的答复,谢谢!Top

相关问题

  • 水晶报表
  • 水晶报表!
  • 水晶报表
  • 水晶报表?
  • 水晶报表
  • 水晶报表
  • 水晶报表
  • 水晶报表
  • 水晶报表
  • 水晶报表

关键词

  • .net
  • asp.net
  • 水晶报表
  • 服务器
  • 注册
  • ds
  • szsql
  • rptview
  • equistate
  • 表

得分解答快速导航

  • 帖主:yanjz

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo