C# 错误:无法使用reportviewer(.rdlc report)为数据集创建数据读取器

C# 错误:无法使用reportviewer(.rdlc report)为数据集创建数据读取器,c#,rdlc,ssrs-2012,C#,Rdlc,Ssrs 2012,我已经阅读了该错误的所有可能解决方案(无法为dataset创建数据读取器),但到目前为止还没有一个解决方案。这是我的代码片段(正确的参数随数据一起传递): public void GenerateRDLC(Finteq.Types.ReportingServices.ReportParameters p_ReportParameters,Stream p_ReportDefinition,ref string p_ReportOutput) { 尝试 { ReportViewer ReportV

我已经阅读了该错误的所有可能解决方案(无法为dataset创建数据读取器),但到目前为止还没有一个解决方案。这是我的代码片段(正确的参数随数据一起传递):

public void GenerateRDLC(Finteq.Types.ReportingServices.ReportParameters p_ReportParameters,Stream p_ReportDefinition,ref string p_ReportOutput)
{
尝试
{
ReportViewer ReportViewer=新的ReportViewer();
DataTable customDataTable=新DataTable();
string mimeType=string.Empty;
字符串编码=string.Empty;
string fileExtension=string.Empty;
string filetype=string.Empty;
字符串[]流线;
警告[]警告=null;
//reportViewer.SizeToReportContent=true;
reportViewer.ProcessingMode=ProcessingMode.Local;
reportViewer.LocalReport.LoadReportDefinition(p_ReportDefinition);
reportViewer.localReport.DataSources.Clear();//已添加
reportViewer.LocalReport.DataSources.Add(新的ReportDataSource(p_ReportParameters.ReportName,p_ReportParameters.ReportDataSource));
reportViewer.localReport.DataSources.Refresh;//已添加
字符串deviceInfo=“PDF”;
字节[]报告文件;
尝试
{
reportFile=reportViewer.LocalReport.Render(p_ReportParameters.ReportFormat.ToString(),deviceInfo,out mimeType,out encoding,out fileExtension,out streamid,out warnings);
使用(FileStream FileStream=newfilestream(p_ReportParameters.ReportTemplateFullPath,FileMode.Create))
{
Write(reportFile,0,reportFile.Length);
p_ReportOutput=p_ReportParameters.ReportTemplateFullPath;
}
}
捕获(例外情况除外)
{
抛出新异常(“未能呈现本地报告,详细信息:+ex.Message+”内部异常:+ex.InnerException”);
}
}
捕获(异常)
{
抛出新异常(“Generate_RDLC_Report::GenerateRDLC-”+Exception.Message);
}
}
}
}

外观,如p_ReportParameters.ReportDataSource为数据集,应为DataTable或查看其他重载外观,如p_ReportParameters.ReportDataSource为数据集,应为DataTable或查看其他重载
public void GenerateRDLC(Finteq.Types.ReportingServices.ReportParameters     p_ReportParameters, Stream p_ReportDefinition, ref string p_ReportOutput)
    {
      try
      {
        ReportViewer reportViewer = new ReportViewer();
        DataTable customDataTable = new DataTable();
        string mimeType = string.Empty;
        string encoding = string.Empty;
        string fileExtension = string.Empty;
        string filetype = string.Empty;
        string[] streamIDs;
        Warning[] warnings = null;

        //reportViewer.SizeToReportContent = true;
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.LoadReportDefinition(p_ReportDefinition);
        reportViewer.localReport.DataSources.Clear();//added
        reportViewer.LocalReport.DataSources.Add(new ReportDataSource(p_ReportParameters.ReportName, p_ReportParameters.ReportDataSource));
        reportViewer.localReport.DataSources.Refresh; // added



        string deviceInfo = "<DeviceInfo><OutputFormat>PDF</OutputFormat></DeviceInfo>";
        byte[] reportFile;
        try
        {
          reportFile = reportViewer.LocalReport.Render(p_ReportParameters.ReportFormat.ToString(), deviceInfo, out mimeType, out encoding, out fileExtension, out streamIDs, out warnings);

          using (FileStream fileStream = new FileStream(p_ReportParameters.ReportTemplateFullPath, FileMode.Create))
          {
            fileStream.Write(reportFile, 0, reportFile.Length);
            p_ReportOutput = p_ReportParameters.ReportTemplateFullPath;
          }
        }
        catch (Exception ex)
        {
          throw new Exception("Failed to render local report, details: " + ex.Message + "Inner Exception: " + ex.InnerException);
        }
      }
      catch (Exception exception)
      {
        throw new Exception("Generate_RDLC_Report::GenerateRDLC - " + exception.Message);
      }
    }

  }
}