Binding Data to Series

Binding Data to Series (Chart Controls)

This topic describes the various data-binding techniques. For a tutorial on binding data to series, see Tutorial: Data Binding a Chart to a Database.

Data Binding Methods

Method Advantages Disadvantages


  • Simple binding for X and Y values.

  • Automatic series creation, based on the number of columns in the data source.

  • Only one pass through data required.

  • No multiple Y values per series.

  • All series have same X value, or X value is not set.

  • No binding for extended chart properties (for example, tooltips).




  • The data source is iterated once for all series.

  • Supports multiple Y values.

  • No binding for extended chart properties (for example, tooltips).


  • Supports multiple data sources, including separate data sources for X and Y values.

  • Supports multiple Y values.

  • More flexible compared to the two methods listed above.

  • No binding for extended chart properties (for example, tooltips).

  • One iteration through data per series.


Same as above, plus:

  • Supports binding for extended chart properties (for example, tooltips).

  • One iteration through data per series.

  • Does not support different data sources for X and Y values of a series.


  • Only one pass through data required.

  • Automatically creates one series for each unique value in a specified column (unique values used to group data).

  • None

Data Sources

The following are the possible data sources used for binding:

  • DataView.

  • Data Readers (SQL, OleDB).

  • DataSet (DataSource data-binding ONLY).

  • Arrays.

  • Lists.

  • All IEnumerable objects.


When using non-tabular data sources such as lists, or arrays, you can bind only Y values, regardless of the type of data-binding method used. This is because columns cannot be specified for X values and other chart properties, such as Tooltip.


The following code demonstrates how to bind a column chart to an Access database table. The table "SALESCOUNTS" has a "SalesRep" column with the names of the sales people, a "Prod A" column, a "Prod B" column, a "Prod C" column, a "Prod D" column, a "Prod E" column, and an "Other" column. The DataBindTable method automatically creates six Series objects: one for each product column and one for the "Other" column. One data point in each series automatically exists per record. The method also binds the X values of the six series to the "SalesRep" column and uses it for the axis labels of the data points.

using System.Data.OleDb; 
using System.Data; 
using System.Web.UI.DataVisualization.Charting;

// Resolve the address to the Access database. We assume database is 
// in Bin folder. 
string fileNameString = "chartdata.mdb"; 

// Initialize a connection string. 
string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString; 

// Define the database query. 
string mySelectQuery="SELECT * FROM SALESCOUNTS;"; 

// Create a database connection object using the connection string. 
OleDbConnection myConnection = new OleDbConnection(myConnectionString); 

// Create a database command on the connection using query. 
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection); 

// Open the connection. 

// Create a database reader. 
OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); 

// Specify the Name column to be used for point's X values. 

// Close the connection. 

//  This is a loop to set all created charts appearance with custom attribute.
foreach (Series series in chart1.Series)
    series.CustomAttributes = "DrawingStyle=LightToDark";

See Also

© 2016 Microsoft