Crystal Reports for VS在Windows 10上无法连接到SQL

时间:2016-09-23 21:56:08

标签: c# sql-server crystal-reports windows-10

我使用Crystal Reports SP 13.0.17 for VS 2010(也尝试使用VS 2015)和ODBC for SQL Server 2014.当我运行我的程序(传递外部报告)时,我得到一个登录对话框数据库,即使提供了正确的凭据。如果我在对话框中重新键入用户名和密码,则会收到错误消息,说明用户名或密码不正确。

这仅在Windows 10上发生。如果我在Windows XP或Windows 7上运行它,它可以正常工作。

如果我在Crystal Reports中运行它,报告将连接到数据库。 ODBC连接适用于另一个不是Crystal的程序。

这是一个错误还是我错过了什么?

ReportDocument cryRpt = new ReportDocument();

cryRpt.Load(strFilename);
cryRpt.PrintOptions.PrinterName = strPrinterName;
this.Name = this.Text = Path.GetFileNameWithoutExtension(strFilename);
cryRpt.SetDatabaseLogon(strDBUser, strDBPwd, strDBServer, strDBDatabase);

cryRpt.RecordSelectionFormula = strSelForm;

foreach (var pair in dctParams)
try
{
    cryRpt.SetParameterValue(pair.Key, pair.Value);
}
catch (Exception ex)
{
    MessageBox.Show("Parameter: " + pair.Key + ", Value: " + pair.Value.ToString() + ", Type: " + pair.Value.GetType() + ", was not passed correctly", "Error");
}

crystalReportViewer1.ViewTimeSelectionFormula = strSelForm;
crystalReportViewer1.SelectionFormula = strSelForm;
crystalReportViewer1.ShowExportButton = bShowExport;
crystalReportViewer1.ShowPrintButton = bShowPrint;
crystalReportViewer1.ShowParameterPanelButton = bShowParam;
crystalReportViewer1.ShowGroupTreeButton = bShowGroup;
if(!bShowParamPanel)
    crystalReportViewer1.ToolPanelView = CrystalDecisions.Windows.Forms.ToolPanelViewType.None;

crystalReportViewer1.ReportSource = cryRpt;

if (bShowForm)
{
    if (!this.ShowInTaskbar)
        this.ShowInTaskbar = true;

    if (this.WindowState == FormWindowState.Minimized)
        this.WindowState = FormWindowState.Maximized;
    crystalReportViewer1.Refresh();
    if (bPrint) cryRpt.PrintToPrinter(1, false, 0, 0);
}
else
{
    cryRpt.PrintToPrinter(1, false, 0, 0);
    this.Close();
}

1 个答案:

答案 0 :(得分:0)

我通过创建一个新项目并将我的代码复制到其中来实现它。