Crystal Reports Échec De La Connexion De Base De Données

Après avoir passé un bon 3 à 4 heures sur google en essayant de trouver une solution à mon problème, je n'ai pas eu beaucoup de chance.

Fondamentalement, nous utiliser crystal reports pour notre .NET applications avec un serveur sql server back-end, nous avons beaucoup de clients, chacun avec leur propre serveur et donc nos rapports doivent avoir leurs connexions de définir de façon dynamique. Jusqu'à il y a une semaine cela a bien fonctionné. Cependant il y a quelques jours un client ont déclaré qu'ils étaient d'obtenir une invite de connexion de base de données pour un rapport (un seul rapport, le reste a bien fonctionné). Nous avons été très perplexe, mais nous avons réussi à le reproduire sur un netbook qui n'a pas visual studio ou sql server est installé. À la fin, le dev a décidé de reproduire le rapport dans l'espoir que c'était juste une bizarrerie dans ce rapport particulier.

Malheureusement un nouveau client est aujourd'hui aussi connu le même problème, mais cette fois, pour chaque rapport crystal qu'ils avaient et ils ont également travaillé sur le netbook, donc, nous sommes vraiment tout perdu ici.

Ci-dessous est une capture d'écran de ce que nos clients obtiennent présenté avec -

Capture d'écran http://img404.imageshack.us/img404/1375/loginf.png

et voici le code que j'utilise pour définir les informations de connexion dans le rapport

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

Comme toujours, toute aide appréciée.

OriginalL'auteur Marlon | 2010-05-11