wpf Crystal Reports在客户端应用程序上提示登录凭据,即使凭据以代码形式传递

vbkedwbf  于 2023-04-22  发布在  其他
关注(0)|答案(1)|浏览(84)

不管我如何处理这个问题,Crystal都在客户端上要求登录凭据。它在开发机器上按预期工作。不确定是什么导致了这个问题。开发机器是Win 10,而客户端是Server 2019。我已经在2019上安装了x64 Crystal Runtimes和.Net 4.8。该应用程序在其他方面工作正常。只是在预览Crystal Reports时提示登录凭据。下面是我的代码:

private void generateReport()
{
    string studyNum = txtStudyNum.Text.Trim().ToString();
    ReportDocument cryRpt = new ReportDocument();
    TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
    TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
    ConnectionInfo crConnectionInfo = new ConnectionInfo();
    Tables CrTables;

    var appPath = AppDomain.CurrentDomain.BaseDirectory;
    string reportName = "SponserSearch.rpt";
    var relativePath = System.IO.Path.Combine("StudyManagement", "Reports", reportName);
    appPath = System.IO.Path.Combine(appPath, relativePath);

    // System.Windows.Forms.MessageBox.Show(appPath.ToString()); 

    cryRpt.Load(appPath);  //path to report

    crConnectionInfo.ServerName = Properties.Settings.Default.strDBServer;
    crConnectionInfo.DatabaseName = Properties.Settings.Default.strDBName;
    crConnectionInfo.UserID = Properties.Settings.Default.strDBUser;
    crConnectionInfo.Password = Properties.Settings.Default.strDBPass;
    crConnectionInfo.IntegratedSecurity = false;
    

    CrTables = cryRpt.Database.Tables;
    foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
    {
        crtableLogoninfo = CrTable.LogOnInfo;
        crtableLogoninfo.ConnectionInfo = crConnectionInfo;
        CrTable.ApplyLogOnInfo(crtableLogoninfo);
    }

    cryRpt.SetDatabaseLogon(Properties.Settings.Default.strDBUser, Properties.Settings.Default.strDBPass);
    cryRpt.SetParameterValue("@SponsorInfo", studyNum);
    crystalViewer.ViewerCore.ReportSource = cryRpt;
}

我注意到了几件事。
不工作的报告使用SQLNCI11本机sql客户端11。报告正常,但提示登录。
MS建议将Provider替换为MSOLEDBSQL,但它的工作方式与SQLNCI11 Provider相同。
SQLOLEDB提供程序不提示输入凭据,但是来自SQL的Crystal Date字段都是字符串。这确实造成了一个令人头痛的问题,并打破了100多个报告。
我也试着删除登录方面,并转移到集成安全。它仍然提示登录凭据。

dtcbnfnu

dtcbnfnu1#

我的问题的解决方案是继续使用SQL Native Client 11,只安装SQL Server 2012 Feature Pack。
https://www.microsoft.com/en-us/download/details.aspx?id=29065

相关问题