找回密码
 立即注册

QQ登录

只需一步,快速开始

xeilin

注册会员

6

主题

14

帖子

42

积分

注册会员

积分
42
最新发帖

[已处理] 导出Excel问题

xeilin
注册会员   /  发表于:2016-3-7 15:52  /   查看:3689  /  回复:4
本帖最后由 Lenka.Guo 于 2016-3-7 16:17 编辑

我修改的实例代码需要连接SQL,修改后还是没有连接成功报错误:GrapeCity.ActiveReports.ReportException”类型的异常在 GrapeCity.ActiveReports.v10.dll 中发生,但未在用户代码中进行处理
其他信息: 发生了一个意外错误。更多信息: 'No data provider found for the data provider type 'SQLOLEDB'.'
代码:
// Provide the page report you want to render.
            GrapeCity.ActiveReports.PageReport _reportDef = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(Server.MapPath("~/Reports/" + report + ".rdlx")));
            _reportDef.Report.DataSources[0].DataSourceReference = "";
            _reportDef.Report.DataSources[0].ConnectionProperties.DataProvider = "SQLOLEDB";
            _reportDef.Report.DataSources[0].ConnectionProperties.ConnectString = @"user id=sa;data source=(local);initial catalog=报表测试数据库;password=123456;";
            GrapeCity.ActiveReports.Document.PageDocument _reportRuntime = new GrapeCity.ActiveReports.Document.PageDocument(_reportDef);
            // Create an output directory
            System.IO.MemoryStream ms = new System.IO.MemoryStream();
            // Provide settings for your rendering output.
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings
            excelSetting = new GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtensionSettings();
            excelSetting.FileFormat = GrapeCity.ActiveReports.Export.Excel.Page.FileFormat.Xls;
            GrapeCity.ActiveReports.Extensibility.Rendering.ISettings setting = excelSetting;
            //Set the rendering extension and render the report.
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension
            excelRenderingExtension = new
            GrapeCity.ActiveReports.Export.Excel.Page.ExcelRenderingExtension();
            GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider outputProvider = new GrapeCity.ActiveReports.Rendering.IO.MemoryStreamProvider();
            _reportRuntime.Render(excelRenderingExtension, outputProvider, excelSetting.GetSettings());
            Response.ContentType = "application/vnd.ms-excel";
            Response.AddHeader("content-disposition", "inline;filename=客户订单.xls");
            outputProvider.GetPrimaryStream().OpenStream().CopyTo(ms);
            Response.BinaryWrite(ms.ToArray());
            Response.End();

4 个回复

倒序浏览
xeilin
注册会员   /  发表于:2016-3-7 15:53:21
沙发
备注:主要修改的代码是:
_reportDef.Report.DataSources[0].DataSourceReference = "";
             _reportDef.Report.DataSources[0].ConnectionProperties.DataProvider = "SQLOLEDB";
             _reportDef.Report.DataSources[0].ConnectionProperties.ConnectString = @"user id=sa;data source=(local);initial catalog=报表测试数据库;password=123456;";
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-3-7 16:17:20
板凳
错误产生原因是DataProvider 类型填写错误,请尝试将:”SQLOLEDB“ 更换为 ”SQL
回复 使用道具 举报
xeilin
注册会员   /  发表于:2016-3-7 16:55:05
地板
谢谢楼上
回复 使用道具 举报
Lenka.Guo讲师达人认证 悬赏达人认证
超级版主   /  发表于:2016-3-7 17:13:38
5#
不客气,也谢谢你啦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部