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 |
|
|
Chart.DataSource et Chart.DataBind |
|
|
Points.DataBind(X)Y |
|
|
Points.DataBind |
Comme ci-dessus, mais aussi :
|
|
Chart.DataBindCrossTable |
|
|
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