Crystal Reports-Datenbank-Anmeldung Fehlgeschlagen
Nachdem er einen guten 3 bis 4 Stunden in google versucht, finde keine Lösung für mein problem ich hatte noch nicht viel Glück.
Grundsätzlich verwenden wir crystal reports für unsere .NET-Anwendungen mit sql server-back-end, haben wir viele Kunden, jede mit Ihrem eigenen server und damit unsere Berichte müssen Ihre verbindungen dynamisch festgelegt. Bis vor einer Woche klappte. Aber vor ein paar Tagen ein Kunde berichtet, Sie waren immer ein Datenbank-login-prompt für einen Bericht (nur ein Bericht, der rest geklappt). Wir waren ziemlich ratlos, aber wir haben es geschafft, um es zu reproduzieren auf einem netbook, die nicht über visual studio oder sql server installiert. Am Ende der dev entschieden, zu reproduzieren, die berichten, in der Hoffnung, es war nur eine kuriosität in diesem besonderen Bericht.
Leider einen neuen client heute auch erlebt das gleiche problem, aber dieses mal für jeden crystal-Reports-Bericht Sie hatten - und auch Sie arbeiteten auf dem netbook, so sind wir wirklich ganz verloren hier.
Unten ist ein screenshot von dem, was unsere Kunden bekommen mit vorgestellt -
Screenshot http://img404.imageshack.us/img404/1375/loginf.png
und hier ist der code, den ich verwenden um die Verbindung von Informationen in den Bericht
cI.ServerName = (string)builder["Data Source"];
cI.DatabaseName = (string)builder["Initial Catalog"];
cI.UserID = (string)builder["User ID"];
cI.Password = (string)builder["Password"];
foreach (IConnectionInfo info in cryRpt.DataSourceConnections)
{
info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password);
}
foreach (ReportDocument sub in cryRpt.Subreports)
{
foreach (IConnectionInfo info in sub.DataSourceConnections)
{
info.SetConnection(cI.ServerName, cI.DatabaseName, cI.UserID, cI.Password);
}
}
Wie immer, jede Hilfe sehr geschätzt.
InformationsquelleAutor Marlon | 2010-05-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht das Problem ist die Art und Weise, dass Sie die Authentifizierungsinformationen. Haben Sie sich überlegt mit dem ReportDocument.SetDatabaseLogon Methode? Nenne es einmal für jede eindeutige DB-Verbindung in dem Bericht. Es beseitigt die Notwendigkeit zum auflisten aller Tabellen, die im Bericht und, soweit ich mich erinnere, die Notwendigkeit zum auflisten der Unterberichte' Tabellen als gut.
Hat die dataase Feld gesetzt werden? Wenn Sie liefern die richtigen Anmeldeinformationen, wenn der Bericht Eingabeaufforderungen Sie, ob der Bericht wie erwartet funktioniert?
Wenn Sie einen hard-code die Werte in die SetDatabaseLogon, wie reportDocument.SetDatabaseLogon("Accounts","Passwort","Datenbank","server"), funktioniert es? Um sicherzustellen, dass der Unterbericht logon-Informationen festgelegt wird, fügen Sie dieses bit, um Ihren Unterbericht Schleife sowie. Lassen Sie mich wissen, wie es funktioniert, und wir werden versuchen, den nächsten test.
Der gleiche Prozess funktioniert absolut problemlos auf andere clients-Umgebungen - also ich vermute, die etwas zu tun mit dem Fahrer / der Art, wie Sie mit SQL server einrichten. Aber ansonsten bin ich überfragt. Wenn ich geben Sie die richtigen Angaben in der Eingabeaufforderung bekomme ich ein failed to connect-Nachricht.
InformationsquelleAutor craig
Lösung gefunden, es stellte sich heraus der Verbindung builder, client verwendet, um set-up Ihre system nicht, dass der name der Instanz. Ziemlich verwirrend das .net app funktionierte mit es wie,. Jedoch, mit, sortiert crystal reports funktionieren nun einwandfrei.
Vielen Dank für Ihre Eingabe Craig.
InformationsquelleAutor Marlon
Suche nach einer Lösung für ein ähnliches problem brachte mich zu dieser Frage. Mein problem/Lösung war ein wenig anders, aber ich vermute, dass andere mit meinem problem hier gelandet, also poste ich meine Lösung hier.
Wenn Ihre Nutzer sehen, so etwas wie dies, wenn Sie versuchen, eine Vorschau eines Berichts anzeigen:
dann, wenn die Einstellung der SQL-Server-login-Informationen für den Bericht, stellen Sie sicher, dass Sie die service Namen. So, zum Beispiel, stellen Sie sicher, du gibst Crystal "myserver\myservice" statt nur "myserver".
Mein Programm ist in der Lage, Zugriff auf die Daten von SQL-Server einfach mit "myserver", aber Crystal muss gegeben werden "myserver\myservice".
InformationsquelleAutor Jeff Roe