彩票走势图

如何从.Net Core中的报表连接到MS SQL

原创|使用教程|编辑:王香|2018-08-03 13:47:45.000|阅读 542 次

概述:本文介绍在.Net Core应用程序中使用FastReport.Net报表以及与MS SQL数据源的连接的方法。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

【下载FastReport.Net最新版本】

.Net开发最常见DBMS之一是MS SQL Server,在本文中,我们将介绍在.Net Core应用程序中使用FastReport.Net

报表以及与MS SQL数据源的连接的方法。 首先,在报表设计器中创建一个与MS SQL连接的报表,该报表设计器随FastReport.Net一起提供。然后,在.Net Core项目中,添加FastReport库,在Nuget包管理器中执行此操作,连接以下包:

  • FastReport.Core——适用于.Net Core平台的报表生成器库;
  • FastReport.Data.MsSql——连接数据库MS SQL;
  • FastReport.Web——允许用户在浏览器中显示报表的Web报表对象。

MSSQLConnect

转到将使用报表的控制器,在示例中,这是HomeController,必须添加对以下命名空间的引用:

using FastReport.Web;
using FastReport.Data;
using FastReport.Utils;

并添加代码以使用所需方法创建和加载报表,这是Index:

public IActionResult Index()
 {
 RegisteredObjects.AddConnection(typeof(MsSqlDataConnection));
 WebReport webReport = new WebReport();
 
 MsSqlDataConnection sqlConnection = new MsSqlDataConnection();
 sqlConnection.ConnectionString = "Data Source = localhost; AttachDbFilename =; Initial Catalog = testdb; Integrated Security = True; Persist Security Info = False; User ID =; Password = ";
 sqlConnection.CreateAllTables();
 webReport.Report.Dictionary.Connections.Add(sqlConnection);
 webReport.Report.Load($@"Reports/CoreMSSQL.frx");
 
 ViewBag.WebReport = webReport;
 return View();
 }

在第一行中,初始化与MsSqlDataConnection数据库的连接,然后创建一个Web报表对象,得到一个MsSqlDataConnection对象的实例,并将连接字符串设置为其中的数据库。之后给出命令——构建所有表,并添加与报表的连接,仅将报表模板加载到Web报表对象并将其传输到视图中。如果报表有变量,那么可以通过以下方式传递应用程序的值:

String value = "Products!";
 webReport.Report.SetParameterValue("Param", value);

在Index.chtml视图中(取决于控制器),添加一行代码:

@await ViewBag.WebReport.Render();

显示Web Report对象。应用程序准备就绪,需要在Configure方法中向Startup.cs文件添加一行代码:

app.UseFastReport();

可以运行该应用程序并检查报表操作:

MSSQLConnect

正如上图所示,从Nuget安装的连接器的使用十分方便,刚刚初始化了与数据库的连接,如果不使用MsSqlConnection,必须创建一个连接,一个DataAdapter,一个DataSet并在报表中注册数据源。


标签:报表SQLFastReportFastReport .net

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP