[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
 [Expand]Product Information
 [Expand]Getting Started with DevExpress Reporting
 [Expand]Creating Popular Reports
 [Collapse]Detailed Guide to DevExpress Reporting
   Introduction to Banded Reports
  [Collapse]Providing Data to Reports
   [Expand]Data Binding Overview
   [Collapse]Tutorials and Code Examples
     Bind a Report to a Database
     Bind a Report to a Stored Procedure
     Bind a Report to an MDB Database (Runtime Sample)
     Bind a Report to a Microsoft SQL Server Database (Runtime Sample)
     Register a Custom Schema Provider for a Synonym Database
     Bind a Report to an Object Data Source
     Bind a Report to a Collection that Implements the ITypedList Interface (Runtime Sample)
     Bind a Report to an Array List (Runtime Sample)
     Bind a Report to a List Object at Design Time and Provide Data at Runtime
     Bind a Report to an Entity Framework Data Source
     Bind a Report to an Entity Framework Stored Procedure
     Filtering an Entity Framework Data Source
     Bind a Report to a CSV File
     Bind a Report to a CSV File (Runtime Sample)
     Bind a Report to an Excel Workbook
     Bind a Report to an Excel Workbook (Runtime Sample)
     Bind a Report to an XML File
     Bind a Report to an XML File (Runtime Sample)
     Bind a Report to a Data Source Schema
     Bind a Report to Multiple Data Sources
     Bind a Report to Multiple Data Tables
  [Expand]Using Report Controls
  [Expand]Shaping Report Data
   Laying out Dynamic Report Contents
  [Expand]Customizing Appearance
  [Expand]Adding Navigation
  [Expand]Providing Interactivity
  [Expand]Adding Customary Information
  [Expand]Merging Reports
  [Expand]Using Expressions
  [Expand]Storing and Distributing Reports
  [Expand]Reporting API
 [Expand]Visual Studio Report Designer
 [Expand]Creating End-User Reporting Applications
 [Expand]API Reference
[Expand]Report and Dashboard Server
[Expand]eXpressApp Framework
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
This documentation page describes implementations made in our v17.2 release cycle. To learn about functionality shipping with v18.1, navigate to our updated help file experience at docs.devexpress.com. Learn More

Bind a Report to a Database

This tutorial demonstrates how to bind a report to a hierarchical data source at design time in Visual Studio and specify a master-detail relationship between data source queries.

Do the following to accomplish this task:

  1. Click the report's smart tag. In the invoked actions list, expand the drop-down menu for the DataSource property and click Add Report Data Source...

  2. On the first page of the invoked Data Source Wizard, select Database and click Next to proceed.

  3. The next page allows you to specify whether you want to use an existing data connection available in the Visual Studio® Server Explorer or create a new data connection from scratch. Select the first option to create a new connection and click Next.

  4. On the next page, you can define a custom connection string, or select one of the supported data providers.

    Depending on the data provider selected, it may be necessary to specify additional connection options (such as the authentication type and database name) on this page.

    In this example, the report will be bound to a sample Northwind database hosted on a Microsoft SQL Server.

    To proceed to the next wizard page, click Next.

  5. Click Next on the following page to save the created connection string to the configuration file.

  6. On the next page, you can choose which tables, views and/or stored procedures to add to the report.

    To create a master-detail report, select two or more tables and click Manage Relations.

    In the invoked editor, connect the required key fields (columns) using drag and drop.

    Click OK to close the editor.


    When you are required to shape data at the level of a data source, you can create custom queries by expanding the Queries category and clicking the button.

    This will invoke the Query Builder where you can create complex queries by joining multiple tables, filtering, sorting and grouping their data, as well as calculating various aggregate functions.

    Although it is also possible to join different tables within a single query, creating hierarchical data sources is preferred in most cases to provide better performance (in general, master-detail reports are generated faster than similar-looking reports created by grouping "flat" data sources).

    Click Finish to complete the Data Source Wizard. If the selected queries or stored procedures contain any parameters, you can go to the next wizard page and define their values.

The newly created SQL data source will be displayed in the Components node of the Report Explorer. Additionally, the hierarchy of the data source will be reflected by the Field List. In both panels, you can right-click the data source to access its settings.

Expanded See Also

Is this topic helpful?​​​​​​​