如何在运行时在C#.net或之中将数据库登录信息传递给Crystal Report

2020-08-17 02:42发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我正在尝试从Visual Stu...

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

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


我正在尝试从Visual Studio 2013 CR版本1.3.0.2000.0的CR升级到版本= 13.0.4000.0。 在以前的版本中,我使用了以下代码:

VB.Net

导入CrystalDecisions.CrystalReports.Engine

导入CrystalDecisions.Shared

PartialClassCalendarRaffle_CalendarMailingLabels

继承System.Web.UI.Page

ProtectedSub Page_Load(ByVal发送者AsObject,ByVal e作为System.EventArgs)HandlesMe.Load

将报表作为新的ReportDocument()

report.Load(Server.MapPath(" CalendarWinerMailInfo.rpt"))

SetTableLocation(report.Database.Tables)

CrystalReportViewer1.ReportSource =报告

EndSub

PrivateSub SetTableLocation(ByVal表作为表)

将connectionInfo设置为New ConnectionInfo()

connectionInfo.ServerName ="我的服务器"

connectionInfo.DatabaseName ="我的数据库"

connectionInfo.UserID ="我的用户名"

connectionInfo.Password ="我的密码"

ForEach表作为表中的CrystalDecisions.CrystalReports.Engine.Table

将tableLogOnInfo设置为TableLogOnInfo = table.LogOnInfo

tableLogOnInfo.ConnectionInfo = connectionInfo

table.ApplyLogOnInfo(tableLogOnInfo)

下一步

EndSub

EndClass

效果很好。

但是,当我尝试将其转换为C#并在当前的Version = 13.0.4000.0中使用它时:

C#

使用系统;

使用CrystalDecisions.CrystalReports.Engine;

使用CrystalDecisions.Shared;

internalpartialclassHQadmin_CalendarMailingLabels:System.Web.UI.Page

{

公共HQadmin_CalendarMailingLabels()

{

this.Load + = Page_Load;

}

protectedvoid Page_Load(对象发送者,EventArgs e)

{

var report = newReportDocument();

report.Load(Server.MapPath(" CalendarWinerMailInfo.rpt")))

SetTableLocation(report.Database.Tables);

CrystalReportViewer1.ReportSource =报告;

}

privatevoid SetTableLocation(表格表格)

{

var connectionInfo = newConnectionInfo();

connectionInfo.ServerName ="我的服务器";

connectionInfo.DatabaseName ="我的数据库";

connectionInfo.UserID =" usernm";

connectionInfo.Password ="密码";

foreach(表格中的CrystalDecisions.CrystalReports.Engine.Table表)

{

TableLogOnInfo tableLogOnInfo = table.LogOnInfo;

tableLogOnInfo.ConnectionInfo = connectionInfo;

table.ApplyLogOnInfo(tableLogOnInfo);

}

}

}

它不起作用。 我找不到在当前版本中如何执行此操作的任何示例。 有人可以告诉我如何使它工作!!!! 另外,如果有当前版本的文档和代码示例,请告诉我在哪里可以找到它。

3条回答
spaceman01
2020-08-17 02:52

您是否收到特定的错误消息? 如果是这样,请发布它。

自较早版本以来所做的一项更改是,如果这是一个网页,则需要将报告保留在Page_Init的会话变量中,而不是 Page_Load。

-Dell

一周热门 更多>