2016-09-23 8 views
0

Ich verwende Crystal Reports SP 13.0.17 für VS 2010 (auch mit VS 2015 versucht) und ODBC für SQL Server 2014. Wenn ich mein Programm (übergibt ein externer Bericht), erhalte ich einen Anmeldedialog für die Datenbank, obwohl die korrekten Anmeldeinformationen angegeben sind. Wenn ich den Benutzernamen und das Passwort im Dialogfeld erneut eingabe, erhalte ich eine Fehlermeldung, dass der Benutzername oder das Passwort nicht korrekt sind.Crystal Reports für VS wird keine Verbindung zu SQL unter Windows herstellen 10

Das passiert nur unter Windows 10. Wenn ich es unter Windows XP oder Windows 7 ausführe, funktioniert es richtig.

Der Bericht stellt eine Verbindung zur Datenbank her, wenn ich ihn in Crystal Reports ausführe. Die ODBC-Verbindung funktioniert mit einem anderen Programm, das nicht Crystal ist.

Ist das ein Fehler oder fehlt mir etwas?

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(); 
} 

Antwort

0

habe ich es, indem sie ein neues Projekt zu arbeiten und kopiert meinen Code in.

Verwandte Themen