将Reporting Services报告从VS2008升级到VS2010

时间:2012-01-04 10:04:06

标签: ssrs-2008 reporting-services

我正在尝试将报告服务文件从VS2008转换为VS2010。在不使用ReportViewer的情况下填充和保存它。

以下步骤会导致错误。

  1. 在VS2010中打开项目。一切正常。
  2. 打开.rdlc文件。它升级了。
  3. 再次运行该应用程序。它失败了。
  4. 我从http://www.gotreportviewer.com/objectdatasources/index.html下载了示例,并使用http://knol.google.com/k/microsoft-sql-server-reporting-services-ssrs#Data_Sources中的方法保存信息。

    有没有办法绕过这个错误?我需要能够使用VS2010来更新报告。

    [错误]

      

    {“报告定义无效。详细信息:报告定义   具有无效的目标命名空间   'http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition'   无法升级。“}

    [代码]

    //Test Code
    try
    {
         ReportViewer viewer = new ReportViewer();
         viewer.LocalReport.SubreportProcessing += new SubreportProcessingEventHandler(LocalReport_SubreportProcessing);
         viewer.ProcessingMode = ProcessingMode.Local;
    
         //Either get this via the embedded resource, or directly via the path. -> better to use embedded resource!
         viewer.LocalReport.ReportEmbeddedResource = "AuthorBooks.AuthorBooks.rdlc";        //Namespace.ReportName.rdlc           
         //viewer.LocalReport.ReportPath = @"C:\Test Projects\ReportingServicesWorking\AuthorBooks.rdlc";
    
                viewer.LocalReport.DataSources.Add(
                    new ReportDataSource
                    (
                    "AuthorBooks_Author",
                    m_authors
                    )
                    );
    
                string mime, encoding, extension;
                string[] streams;
                Warning[] warnings;
    
                byte[] report = viewer.LocalReport.Render("PDF", null,
                    out mime,
                    out encoding,
                    out extension,
                    out streams,
                    out warnings);
    
                string outputPath = @"C:\Test Projects\ReportingServicesWorking\TestSave.pdf";
                File.WriteAllBytes(outputPath, report);
                Process.Start(outputPath);
            }
            catch (Exception ex)
            {
                //Do stuff here.
            }
    

1 个答案:

答案 0 :(得分:1)

确保已安装ReportViewer 2010 redistributable,并且在您的应用程序中使用了此版本的ReportViewer控件。