如何解决客户端计算机上的"无法加载数据库信息"?

2020-08-15 19:58发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


  • 我正在使用Visual Studio 2019和Crystal Reports Runtime 13_0_27版本。 运行时版本(32位和64位)都安装在另一台计算机上,并且在其中一个在线答案中建议使用crdb_fielddef.dll。 在该系统上还提供了读取数据库的权限。
  • 尝试了多种方法后,问题仍然相同-整个项目都在我的机器上运行,但是在应该运行该机器的另一台机器上,所有页面都显示了记录,但是在尝试显示打印预览时 使用水晶报表,它显示错误-" 无法加载数据库信息"。

  • 该项目的工作逻辑是-当我们要打印有关特定记录的信息时,将捕获选定的索引号并将其转移到另一种形式(.vb)中,从SQL中获取数据。 服务器数据库并存储在项目内单独的新数据集中的空表中。 水晶报表然后将那些记录存储在数据集中的表中并显示记录。

    我已经从"数据库专家"中检查了数据源位置,并且该位置与所需位置相同。

    • 我在表单中的代码如下-

      导入CrystalDecisions.CrystalReports.Engine

      公共类ChemLabGradePrint

      公共子类New(ByVal GradeIndex1为整数)

      InitializeComponent()

      Dim ff作为新的PourChemistryDataset.PourChemistryDataTable

      将结果作为PourChemistrReportList

      Dim RMin作为字符串

      Dim RMax作为字符串

      Dim c作为整数结果= New PourChemistrReportList(ReaderF(GetPourChemistryReport(GradeIndex1)))

      对于c = 0要得出结果.ElementName.Count-1

      如果IsNumeric(result.SpecMin(c))AndCDbl(result.SpecMin(c))<> 0然后

      SMin = result.SpecMin(c)

      Else

      SMin =""

      End If

      If IsNumeric(result .RestrMin(c))And CDbl(result.RestrMin(c))<> 0然后

      RMin =结果.RestrMin(c)

      其他

      RMin =""

      结束如果

      如果IsNumeric(result.RestrMax(c))AndCDbl(result.RestrMax(c))<> 0然后

      RMax = result.RestrMax(c)

      否则

      RMax =""

      结束如果

      '//将记录存储在PourChemistryDataTable表中的空表(手动构建)中

      ff.Rows.Add(result.ElementName(c),

      SMin,result.SpecMax(c),RMin,RMax,result.Pref(c),

      result.Bckp(c),result.Comments(c))

      下一步

      '-------报告

      将RDoc视作新的ReportDocument

      RDoc.Load(CrystalReportViewer1.ReportSource)< /p>

      RDoc.SetDataSource(DirectCast(ff,DataTable))

      RDoc.SetParameterValue(" METGrade",result.MetCode(0))

      '//" METGrade"是水晶report.rpt文件中的"参数字段"

      RDoc.SetParameterValue(" GradeName",result.GradeName(0))

      CrystalReportViewer1.ReportSource = RDoc

      结束子

      结束类

      然后,将" Crystal Report"设置为数据源位置(即PourChemistryDataTable表),并在报告中显示数据。

      所有这些过程都可以在我的系统上正常运行,但不能在其他系统上运行。 将安装相同的运行时版本,并且还授予读取访问权限以访问SQL Server的.mdf文件。 项目的sql源设置为自动以获取sqlserver和数据库信息。

      Designer.vb中的CrystalReportViewer1.ReportSource是=>

      Me.CrystalReportViewer1.ReportSource =" P:\ ASW-Core-Shop_New \ ASW-Core-1.1 \ Reports \ ChemLabGradeReport.rpt"

      手动设置是因为它给出了"无法将report.reportSource转换为String"的错误。 因此将其手动设置为文件位置。 工厂中的任何计算机都可以访问存储项目的文件位置,因为每个人都可以访问该驱动器。 因此,每个人的系统都可以访问reportSource的文件位置。

  • 请帮助我解决问题,但我找不到问题所在。 在这里发布之前,我已经尝试了许多在线解决方案,但是在我的情况下都没有用。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


  • 我正在使用Visual Studio 2019和Crystal Reports Runtime 13_0_27版本。 运行时版本(32位和64位)都安装在另一台计算机上,并且在其中一个在线答案中建议使用crdb_fielddef.dll。 在该系统上还提供了读取数据库的权限。
  • 尝试了多种方法后,问题仍然相同-整个项目都在我的机器上运行,但是在应该运行该机器的另一台机器上,所有页面都显示了记录,但是在尝试显示打印预览时 使用水晶报表,它显示错误-" 无法加载数据库信息"。

  • 该项目的工作逻辑是-当我们要打印有关特定记录的信息时,将捕获选定的索引号并将其转移到另一种形式(.vb)中,从SQL中获取数据。 服务器数据库并存储在项目内单独的新数据集中的空表中。 水晶报表然后将那些记录存储在数据集中的表中并显示记录。

    我已经从"数据库专家"中检查了数据源位置,并且该位置与所需位置相同。

    • 我在表单中的代码如下-

      导入CrystalDecisions.CrystalReports.Engine

      公共类ChemLabGradePrint

      公共子类New(ByVal GradeIndex1为整数)

      InitializeComponent()

      Dim ff作为新的PourChemistryDataset.PourChemistryDataTable

      将结果作为PourChemistrReportList

      Dim RMin作为字符串

      Dim RMax作为字符串

      Dim c作为整数结果= New PourChemistrReportList(ReaderF(GetPourChemistryReport(GradeIndex1)))

      对于c = 0要得出结果.ElementName.Count-1

      如果IsNumeric(result.SpecMin(c))AndCDbl(result.SpecMin(c))<> 0然后

      SMin = result.SpecMin(c)

      Else

      SMin =""

      End If

      If IsNumeric(result .RestrMin(c))And CDbl(result.RestrMin(c))<> 0然后

      RMin =结果.RestrMin(c)

      其他

      RMin =""

      结束如果

      如果IsNumeric(result.RestrMax(c))AndCDbl(result.RestrMax(c))<> 0然后

      RMax = result.RestrMax(c)

      否则

      RMax =""

      结束如果

      '//将记录存储在PourChemistryDataTable表中的空表(手动构建)中

      ff.Rows.Add(result.ElementName(c),

      SMin,result.SpecMax(c),RMin,RMax,result.Pref(c),

      result.Bckp(c),result.Comments(c))

      下一步

      '-------报告

      将RDoc视作新的ReportDocument

      RDoc.Load(CrystalReportViewer1.ReportSource)< /p>

      RDoc.SetDataSource(DirectCast(ff,DataTable))

      RDoc.SetParameterValue(" METGrade",result.MetCode(0))

      '//" METGrade"是水晶report.rpt文件中的"参数字段"

      RDoc.SetParameterValue(" GradeName",result.GradeName(0))

      CrystalReportViewer1.ReportSource = RDoc

      结束子

      结束类

      然后,将" Crystal Report"设置为数据源位置(即PourChemistryDataTable表),并在报告中显示数据。

      所有这些过程都可以在我的系统上正常运行,但不能在其他系统上运行。 将安装相同的运行时版本,并且还授予读取访问权限以访问SQL Server的.mdf文件。 项目的sql源设置为自动以获取sqlserver和数据库信息。

      Designer.vb中的CrystalReportViewer1.ReportSource是=>

      Me.CrystalReportViewer1.ReportSource =" P:\ ASW-Core-Shop_New \ ASW-Core-1.1 \ Reports \ ChemLabGradeReport.rpt"

      手动设置是因为它给出了"无法将report.reportSource转换为String"的错误。 因此将其手动设置为文件位置。 工厂中的任何计算机都可以访问存储项目的文件位置,因为每个人都可以访问该驱动器。 因此,每个人的系统都可以访问reportSource的文件位置。

  • 请帮助我解决问题,但我找不到问题所在。 在这里发布之前,我已经尝试了许多在线解决方案,但是在我的情况下都没有用。
付费偷看设置
发送
1条回答
渐行渐远_HoldOn
1楼 · 2020-08-15 20:27.采纳回答

尝试运行ProcessMonitor,看看有什么不同。

如果连接信息出现任何故障,将无法正常工作。

尝试在登录之前设置参数值。

CRLOGGER可能还会为您提供更多信息,搜索有关如何使用KBA的信息。

一周热门 更多>