Share via


Liaison de données à des séries (contrôles Chart)

Cette rubrique décrit les différentes techniques de liaison de données. Pour obtenir un didacticiel sur la liaison de données à des séries, consultez Didacticiel : liaison de données entre un graphique et une base de données.

Méthodes de liaison de données

Méthode

Avantages

Inconvénients

Chart.DataBindTable

  • Liaison simple pour des valeurs X et Y.

  • Création automatique de séries, selon le nombre de colonnes de la source de données.

  • Une seule passe requise sur les données.

  • Pas de valeurs Y multiples par série.

  • Toutes les séries ont la même valeur X ou la valeur X n'est pas définie.

  • Aucune liaison pour les propriétés de graphique étendues (comme les info-bulles).

Chart.DataSource

et

Chart.DataBind

  • La source de données est itérée une fois pour toutes les séries.

  • Prend en charge les valeurs Y multiples.

  • Aucune liaison pour les propriétés de graphique étendues (comme les info-bulles).

Points.DataBind(X)Y

  • Prend en charge plusieurs sources de données, notamment des sources de données distinctes pour les valeurs X et Y.

  • Prend en charge les valeurs Y multiples.

  • Plus flexible que les deux méthodes mentionnées ci-dessus.

  • Aucune liaison pour les propriétés de graphique étendues (comme les info-bulles).

  • Une itération sur les données par série.

Points.DataBind

Comme ci-dessus, mais aussi :

  • Prend en charge la liaison pour les propriétés de graphique étendues (comme les info-bulles).

  • Une itération sur les données par série.

  • Ne prend pas en charge de sources de données distinctes pour les valeurs X et Y d'une série.

Chart.DataBindCrossTable

  • Une seule passe requise sur les données.

  • Crée automatiquement une série pour chaque valeur unique dans une colonne spécifiée (valeurs uniques utilisées pour regrouper des données).

  • Aucun

Sources de données

Les sources de données pouvant être utilisées pour la liaison sont les suivantes :

  • DataView.

  • Lecteurs de données (SQL, OleDB).

  • DataSet (liaison de données avec DataSource UNIQUEMENT).

  • Tableaux.

  • Listes.

  • Tous les objets IEnumerable.

Notes

Lors de l'utilisation de sources de données non tabulaires, comme des listes ou des tableaux, vous ne pouvez lier que des valeurs Y, quel que soit le type de méthode de liaison de données utilisé. En effet, il n'est pas possible de spécifier des colonnes pour des valeurs X et d'autres propriétés de graphique, telles que Tooltip.

Exemple

Le code suivant montre comment lier un histogramme à une table de base de données Access. La table "SALESCOUNTS" comporte une colonne "SalesRep" qui contient le nom des commerciaux, les colonnes produit "Prod A", "Prod B", "Prod C", "Prod D" et "Prod E", ainsi qu'une colonne "Other". La méthode DataBindTable crée automatiquement six objets Series : un pour chaque colonne produit et un pour la colonne "Other". Chaque série comprend systématiquement un point de données par enregistrement. La méthode lie également les valeurs X des six séries à la colonne "SalesRep" et l'utilise pour les étiquettes d'axe des points de données.

Imports System.Data.OleDb 
Imports System.Data 
Imports System.Web.UI.DataVisualization.Charting
...

' Resolve the address to the Access database. We assume database is 
' in Bin folder. 
Dim fileNameString As String =  "chartdata.mdb" 

' Initialize a connection string. 
Dim myConnectionString As String =  "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileNameString 

' Define the database query. 
Dim mySelectQuery As String = "SELECT * FROM SALESCOUNTS;" 

' Create a database connection object using the connection string. 
Dim myConnection As OleDbConnection =  New OleDbConnection(myConnectionString) 

' Create a database command on the connection using query. 
Dim myCommand As OleDbCommand =  New OleDbCommand(mySelectQuery,myConnection) 

' Open the connection. 
myCommand.Connection.Open() 

' Create a database reader. 
Dim myReader As OleDbDataReader =  myCommand.ExecuteReader(CommandBehavior.CloseConnection) 

' Specify the Name column to be used for point's X values. 
chart1.DataBindTable(myReader,"SalesRep")

' Close the connection. 
myConnection.Close()

'  This is a loop to set all created charts appearance with custom attribute.
Dim series As Series
For Each series In chart1.Series
    series.CustomAttributes = "DrawingStyle=LightToDark"
Next
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. 
myCommand.Connection.Open(); 

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

// Specify the Name column to be used for point's X values. 
chart1.DataBindTable(myReader,"SalesRep");

// Close the connection. 
myConnection.Close();

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

Voir aussi

Référence

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Autres ressources

Liaison et manipulation de données