C# 本地报表处理过程中出错

C# 本地报表处理过程中出错,c#,winforms,rdlc,C#,Winforms,Rdlc,我正在尝试在打印机上进行自动打印,但出现错误“本地报表处理过程中发生错误”。这是我的代码: private Stream CreateStream(string name, string fileNameExtension, Encoding encoding, string mimeType, bool willSeek) { Stream stream = new File

我正在尝试在打印机上进行自动打印,但出现错误“本地报表处理过程中发生错误”。这是我的代码:

private Stream CreateStream(string name,
              string fileNameExtension, Encoding encoding,
              string mimeType, bool willSeek)
                {
                Stream stream = new FileStream(@"..\..\" + name +
                   "." + fileNameExtension, FileMode.Create);
                m_streams.Add(stream);
                return stream;
                }
            // Export the given report as an EMF (Enhanced Metafile) file.
            private void Export(LocalReport report)
                {
                string deviceInfo =
                  "<DeviceInfo>" +
                  "  <OutputFormat>EMF</OutputFormat>" +
                  "  <PageWidth>2.5in</PageWidth>" +
                  "  <PageHeight>11in</PageHeight>" +
                  "  <MarginTop>0.5in</MarginTop>" +
                  "  <MarginLeft>2in</MarginLeft>" +
                  "  <MarginRight>5in</MarginRight>" +
                  "  <MarginBottom>0in</MarginBottom>" +
                  "</DeviceInfo>";
                Warning[] warnings;
                m_streams = new List<Stream>();
                report.Render("Image", deviceInfo, CreateStream,
                   out warnings);
                foreach(Stream stream in m_streams)
                    stream.Position = 0;
                }
            // Handler for PrintPageEvents
            private void PrintPage(object sender, PrintPageEventArgs ev)
                {
                Metafile pageImage = new
                   Metafile(m_streams[m_currentPageIndex]);
                ev.Graphics.DrawImage(pageImage, ev.PageBounds);
                m_currentPageIndex++;
                ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
                }

            private void Print()
                {
                const string printerName =
                   "HP LaserJet 2300 PCL6 Class Driver";
                if(m_streams == null || m_streams.Count == 0)
                    return;
                PrintDocument printDoc = new PrintDocument();
                printDoc.PrinterSettings.PrinterName = printerName;
                if(!printDoc.PrinterSettings.IsValid)
                    {
                    string msg = String.Format(
                       "Can't find printer \"{0}\".", printerName);
                    MessageBox.Show(msg, "Print Error");
                    return;
                    }
                printDoc.PrintPage += new PrintPageEventHandler(PrintPage);
                printDoc.Print();
                }

    Code Button Click Event

    ds.Tables.Add(dt);
    ds.WriteXmlSchema("sample.xml");
    ds.ReadXml("sample.xml");
    ds.WriteXmlSchema("sample.xsd");

    LocalReport report = new LocalReport();
    report.ReportPath = "SaleReport1.rdlc";
    report.DataSources.Add(
    new ReportDataSource("Table1", ds.Tables[0]));
    Export(report);
    m_currentPageIndex = 0;
    Print();
私有流CreateStream(字符串名称,
字符串文件名扩展名,编码,
字符串mimeType,bool willSeek)
{
Stream=新文件流(@“.\..\”+名称+
“+fileNameExtension,FileMode.Create);
m_streams.Add(stream);
回流;
}
//将给定报告导出为EMF(增强元文件)文件。
私有void导出(LocalReport)
{
字符串设备信息=
"" +
“电动势”+
“2.5英寸”+
“11英寸”+
“0.5英寸”+
“2英寸”+
“5英寸”+
“0英寸”+
"";
警告[]警告;
m_streams=新列表();
report.Render(“图像”、deviceInfo、CreateStream、,
发出警告);
foreach(m_streams中的流)
流位置=0;
}
//PrintPageEvents的处理程序
私有void打印页(对象发送方,PrintPageEventArgs ev)
{
图元文件pageImage=new
元文件(m_streams[m_currentPageIndex]);
ev.Graphics.DrawImage(页面图像,ev.PageBounds);
m_currentPageIndex++;
ev.HasMorePages=(m_currentPageIndex
我也有同样的问题。报表处理过程中出错。DatasetName和我发现连接字符串存在问题;我必须从使用windows身份验证切换到sql身份验证,然后我的报告才能工作


报表数据源名称必须与您通过ReportDataSource对象提供的名称匹配。这似乎不是您发布的代码的问题,而是报表定义中的错误

您必须捕获异常并查看不同级别的InnerException;i、 e:

ex.Message
ex.InnerException.Message
ex.InnerException.InnerException.Message

您正在使用windows身份验证吗?或者SQL身份验证?你能看一下我的答案吗?不,我没有使用SQL bro m使用xml数据集填充和数据表xml填充,我正在动态创建数据表列并给他值