以编程方式将SSRS数据源保存为.ds文件

本文关键字:保存 ds 文件 数据源 SSRS 编程 方式 | 更新日期: 2023-09-27 18:09:58

我有一个到SSRS服务器的web服务,我从该服务器下载报告并将其用c#序列化为XML,然后保存为.rdl文件。

我也有可能得到所有的Data Source,用

ReportingService2005 rs = new ReportingService2005();
DataSource dataSource = new DataSource();
DataSourceDefinition dataSourceDefinition = rs.GetDataSourceContents(path);
dataSource.Item = dataSourceDefinition;

我想保存data source对象作为.ds.rds文件,但我不知道如何。是否有一种方法可以使用XML序列化或其他更简单的方法?

以编程方式将SSRS数据源保存为.ds文件

我也遇到了同样的问题,我使用XML序列化来序列化DataSource对象,下面是代码片段:

DataSource ds = new DataSource();
                    DataSourceDefinition dsDefinition = rs.GetDataSourceContents(item.Path);
                    ds.Item = dsDefinition;
                    sOutFile = string.Format(@"{0}{1}.rds", sOutputDir, item.Name);
                    if (File.Exists(sOutFile))
                        File.Delete(sOutFile);
                    SerializeObject(sOutFile, ds);   // serializes the dataSource object and save it

这里是SerializeObject方法,它序列化然后以XML格式保存文件:

private void SerializeObject(string filename, DataSource d)
    {
        try
        {
            XmlSerializer serializer =
            new XmlSerializer(typeof(DataSource));
            // Create an XmlTextWriter using a FileStream.
            Stream fs = new FileStream(filename, FileMode.Create);
            XmlWriter writer =
            new XmlTextWriter(fs, Encoding.Unicode);
            // Serialize using the XmlTextWriter.
            serializer.Serialize(writer, d);
            writer.Close();
        }
        catch (Exception e) { MessageBox.Show("inside serializeObject Method "+e.Message); }
    }

我希望这有助于如果有人被困在这个问题

正如kyzen在评论中建议的那样,我使用了一些自定义代码和这篇文章的组合,列出了SQL Server 2008 R2中的所有数据源及其依赖关系(报告,项目等),以获得我想要的结果