Associazione di dati alle serie con controlli Chart
In questo argomento vengono descritte le varie tecniche di associazione dati.Per un'esercitazione sull'associazione di dati alle serie, vedere Esercitazione: associazione dati di un grafico a un database.
Metodi di associazione dati
Metodo |
Vantaggi |
Svantaggi |
---|---|---|
Chart.DataBindTable |
|
|
Chart.DataSource e Chart.DataBind |
|
|
Points.DataBind(X)Y |
|
|
Points.DataBind |
Come descritto precedentemente, con in più:
|
|
Chart.DataBindCrossTable |
|
|
Origini dati
Di seguito sono elencate le possibili origini dati utilizzate per l'associazione.
DataView
Lettori di dati (SQL, OleDB)
DataSet (SOLO per associazione dati DataSource)
Matrici
Elenchi
Tutti gli oggetti IEnumerable
Nota
Se si utilizzano origini dati non tabulari, quali elenchi o matrici, è possibile associare solo i valori Y, indipendentemente dal tipo del metodo di associazione dati utilizzato.Ciò è dovuto al fatto che non è possibile specificare colonne per i valori X e altre proprietà del grafico, come ad esempio Tooltip.
Esempio
Nell'esempio di codice riportato di seguito viene illustrato come associare un grafico a istogramma a una tabella di un database Access.La tabella "SALESCOUNTS" dispone di una colonna "SalesRep" con i nomi degli addetti alle vendite, una colonna "Prod A", una colonna "Prod B", una colonna "Prod C", una colonna "Prod D", una colonna "Prod E" e una colonna "Other".Il metodo DataBindTable crea automaticamente sei oggetti Series: uno per ciascuna colonna di prodotto e uno per la colonna "Other".In ciascuna serie viene creato automaticamente un punto dati per record.Il metodo inoltre associa i valori X delle sei serie alla colonna "SalesRep" e utilizza tale colonna per le etichette degli assi dei punti dati.
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";
}
Vedere anche
Riferimenti
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting