Cette erreur est malheureusement ambiguë car c'est l'erreur générée pour des dizaines de problèmes sans rapport. Dans ce cas, la "Connexion échouée" est probablement due à une non-concordance de schéma occasionnelle.
L'objet DataSet peut contenir des données hiérarchiques. Si votre service renvoie un DataSet contenant des données hiérarchiques et que certains des enfants sont manquants, alors son schéma a effectivement changé.
Il existe plusieurs façons de garantir que le DataSet a un schéma correspondant. Si vous êtes des objets sérialisation en XML, puis générer le DataSet à partir de ce XML, alors un moyen simple de réaliser un schéma cohérent est de changer votre code de:
reportData.ReadXml(new MemoryStream(Encoding.UTF8.GetBytes(reportXml)));
à
reportData.ReadXmlSchema(schemaPath);
reportData.ReadXml(
new MemoryStream(Encoding.UTF8.GetBytes(reportXml)),
XmlReadMode.IgnoreSchema
);
où les points de schemaPath à un fichier XSD qui a été généré plus tôt dans le développement avec un appel à
File.WriteAllText(
@"C:\MyTempPath\MyReportName.xsd",
reportData.GetXmlSchema(),
Encoding.Unicode
);
Lors de la génération du schéma, vous voulez aussi que le schéma soit aussi complet d'un rééd Si possible, vous devez utiliser autant de hiérarchie de données que possible. C'est également le XML dont le rapport doit être créé pour que son schéma corresponde. Si le schéma change, le rapport doit être ouvert dans le concepteur avec les nouvelles données et vous devez "vérifier la base de données", puis enregistrer le fichier RPT.
Pouvez-vous écrire du code? –