Pourquoi suis-je “de la Base de données d'ouverture de session a échoué” dans Crystal Reports lors de l'utilisation .NET de l'objet en tant que source de données?
Je suis entrain de créer un rapport simple à l'aide d'un .NET objet de mon projet en tant que source de données, à l'aide de SetDatasource()
méthode. Cependant, lorsque je lance le rapport que j'obtiens "Base de données d'ouverture de session a échoué" erreur. Ce rapport n'est pas de la connexion à une base de données à tous les - ai-je raté quelque chose ici?
Merci beaucoup,
D.
AJOUTÉ:
Je pense que ce sera probablement vous aider, si je comprend le Contrôleur de l'action. C'est un moyen rapide et sale de test, pas ce que la méthode finale ressemblera à:
public ActionResult StewardSheets(int showId, int groupId)
{
ReportClass rptH = new ReportClass();
rptH.FileName = DataHelper.getReportFilePath("Test.rpt",this);
NZDSDataContext dataContext = new NZDSDataContext();
var showDetails = (from s in dataContext.Shows
where s.ID == showId
select new StewardSheetModel
{
EventDate = s.EventDate.ToLongDateString(),
Region = s.Region.Name,
ShowTitle = s.Name
}).FirstOrDefault();
List<StewardSheetModel> details = new List<StewardSheetModel>();
details.Add(showDetails);
rptH.SetDataSource(details);
rptH.Load();
Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
return File(stream, "application/pdf");
}
FIXE:
Oh pinaise! J'ai utilisé ReportClass au lieu de ReportDocument. Changé cette ligne, et utilisent aussi Refresh() depuis Load() n'est pas une méthode valable. Maintenant, il fonctionne très bien!
- Quels sont les paramètres de source de données?
- Voici une capture d'écran de la source de données - j'espère que c'est ce que vous demandez? img262.imageshack.us/img262/3615/crystalreport.png
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez ADO.NET ensembles de données en tant que votre source de données, il est possible pour la définition de DataSet pour sortir de la synchronisation avec la définition donnée dans le rapport. La sélection de la Base de données->Vérifier la Base de données option dans le concepteur de rapport dans le menu contextuel peut souvent résoudre ce problème.
Aussi, vous obtiendrez cette erreur si votre rapport a des tables liées et vous ne parviennent pas à définir la source de données pour l'une des tables. La solution est soit de supprimer la table de l'état, ou la valeur de la source de données correctement.
Par exemple, si votre rapport a une table client et une table Commandes liés ensemble sur certains points, vous devez définir la source de données pour les deux tableaux. Si vous oubliez et vous mettre un seul, vous obtiendrez une "Base de données d'ouverture de session d'erreur" échec qui est assez trompeuse.
S'il vous plaît essayer, Cliquez-Droit sur le Rapport -> Base de données-> Vérifier la Base de données.
Si la boîte de dialogue s'affiche, localisez votre jeu de données .fichier xsd (e.g DataSet1.xsd) et de les Appliquer.
Mon problème a été résolu de cette façon.
J'ai commencé à avoir cette boîte de dialogue popping up après que j'ai changé le nom de la .NET de l'objet de mes rapports se référant à la. Pour se débarrasser de la boîte de dialogue, j'ai eu à s'assurer qu'aucune partie de mon rapport des sections ou des domaines visés à l'ancien nom de la .Net de l'objet qui était facile à repérer. Le correctif pour moi a été l'aide de la fonction renommer dans l'Expert Base de données pour le rapport.
J'ai eu du mal avec cette erreur pour un couple de jours. J'ai un .NET webforms projet qui utilise CrystalReportViewer à la charge d'un Rapport Crystal. Au lieu de l'état de chargement, j'ai continué à obtenir "Base de données d'ouverture de session a échoué".
J'ai ouvert le fichier RPT dans Crystal Report Designer et est allé à
Database -> Verify Database
Cela m'a donné une erreur plus spécifique. ENFIN!!!!!
J'ai retrouvé le fichier XSD, déplacé au bon endroit et BOOM
Fixe à l'aide de la classe appropriée: ReportDocument au lieu de ReportClass.
Dans mon cas, j'ai oublier de mettre la source de données à un datatable.
quelque chose comme ceci
rpt.La base de données.Tables("Compte").SetDataSource(CType(Source De Données.Compte, DataTable))
Utilisation native client de Connexion de la Version 10.
J'ai eu à faire écrire les dessous de la ligne de code pour se débarrasser de la Base de données "erreur de connexion"
J'ai commencé à avoir la fameuse "base de données d'ouverture de session a échoué" erreur sur un Serveur Windows 2016 de la machine après la juillet 2018 mises à jour windows server. Le rapport a couru correctement dans Visual Studio 2017 sur ma machine de dev, mais pas dans IIS sur Windows Server 2016 dans la production.
Après une journée d'enquête, j'ai installé le Microsoft Pilote OLE DB pour SQL Server sur ma machine de développement - https://docs.microsoft.com/en-us/sql/connect/oledb/oledb-driver-for-sql-server?view=sql-server-2017. J'ai créé un rapport de connexion dans le rapport Crystal à l'expert base de données à l'aide de la MSOLEDBSQL fournisseur. J'ai dû installer le Microsoft Pilote OLE DB pour SQL server sur le Serveur de production Windows Server 2016 machine.
Il s'avère que Microsoft a décidé de rendre caduque le Fournisseur Microsoft OLE DB pour SQL Server. Ce et le native client ne semble plus fonctionner avec Crystal Reports.