显示报表.net Winform应用程序时,Crystal报表登录提示将数据库名称留空

时间:2018-10-15 14:51:02

标签: c# crystal-reports crystal-reports-2010

我们在VS2015(.net 4.5)中开发了一个CRM C#.NET应用程序,在其中显示了大量报告。

几个月以来,我们在生成报告时出现了登录提示问题,除数据库为空且已禁用之外,所有字段均已正确填写。

enter image description here

仅当我们对报表进行数据库更改后(添加表等时),才会出现此问题

在报告中,我们使用SQL本机客户端11。

数据库连接通过代码传递:

首先要加载报告。

接下来,我们设置登录信息:

var crConnectionInfo = new ConnectionInfo
{
    ServerName = servername,
    DatabaseName = databasename,
    UserID = userid,
    Password = password,
};


var crTables = _report.Database.Tables;
foreach (Table crTable in crTables)
{
    var crtableLogoninfo = crTable.LogOnInfo;
    crtableLogoninfo.ConnectionInfo = crConnectionInfo;
    crTable.ApplyLogOnInfo(crtableLogoninfo);                 
}


_report.SetDatabaseLogon(userid, password);
_report.DataSourceConnections[0].IntegratedSecurity = false;

之后,我们设置报告源和参数字段:

 _crView.ReportSource = _report;    
 _crParameterFields = _crView.ParameterFieldInfo;

还有其他人也遇到过这个问题吗?

尝试了不同的解决方案,例如将legacyV2运行时添加到app.config。

 <startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
 </startup>

1 个答案:

答案 0 :(得分:0)

通过将报表中的数据类型从SQLNCLI11更改为SQLOLEDB解决了该问题