Как подключаться к СУБД MS SQL из отчетов в .NET Core

29.05.2018

Одной из наиболее распространенных СУБД с которой работают .Net разработчики является MS SQL Server. В этой статье мы рассмотрим, как в своем .NET Core приложении использовать отчеты FastReport .NET с подключением к источнику данных MS SQL.

Для начала, необходимо создать отчет с подключением к MS SQL в дизайнере отчетов, который поставляется вместе с FastReport .NET.

Затем, в ваш .NET Core проект нужно добавить библиотеки FastReport. Это можно сделать в менеджере пакетов Nuget. Нам необходимо подключить следующие пакеты:

  • FastReport.Core – библиотека генератора отчетов адаптированная под платформу .NET Core;
  • FastReport.Data.MsSql –коннектор к базе данных MSSQL;
  • FastReport.Web – объект веб отчета, который позволяет выводить отчеты в браузере.

Затем переходим к контроллеру, в котором будем работать с отчетом. В моем примере это HomeController. Необходимо добавить ссылки на следующие пространства имен:

1
2
3
using FastReport.Web;
using FastReport.Data;
using FastReport.Utils;

И добавляем код создания и загрузки отчета в нужный метод. В моем случае это Index:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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. Затем – создаем объект веб отчета. Получаем экземпляр объекта MsSqlDataConnection и задаем в нем строку подключения к БД. После чего отдаем команду – построить все таблицы. И добавляем подключение в отчет. Остается лишь загрузить шаблон отчета в объект веб отчет и передать его представлению.

Если отчет имеет переменную, то мы можем передать в нее значение из приложения таким способом:

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

В представление Index.chtml (в зависимости от контроллера), мы добавляем строчку:

1
@await ViewBag.WebReport.Render();

Которая отобразит объект веб отчета.

Приложение практически готово, нужно лишь добавить еще одну строку кода в файл Startup.cs, в метод Configure:

:

1
app.UseFastReport();

Теперь можно запустить приложение и проверить работу нашего отчета:

Как видите, применение коннектора, который мы установили из Nuget, существенно облегчило нам жизнь. Мы просто инициализировали подключение к БД. Если бы мы не использовали MsSqlConnection, то пришлось бы создавать подключение, DataAdapter, DataSet и регистрировать источник данных в отчете.

20 ноября 2024

Локализация и смена языков в FastReport VCL

FastReport VCL поддерживает 40 языков для локализации интерфейса и позволяет изменять язык на лету через меню или код, без перекомпиляции.
1 ноября 2024

Новые возможности редактора отчетов FastReport VCL

Рассматриваем новые возможности редактора отчетов: выносные линии, подсветка пересекающихся объектов, обновлённые деревья отчетов и данных.
30 октября 2024

Использование стилей при создании отчетов в FastReport VCL

В статье подробно рассматривается одна из новых возможностей FastReport VCL – применение стилей и страниц стилей.