Condividi tramite


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

  • Associazione semplice per valori X e Y.

  • Creazione automatica della serie sulla base del numero di colonne nell'origine dati.

  • È richiesto il passaggio di un solo dato.

  • Non sono ammessi più valori Y per serie.

  • Tutte le serie hanno lo stesso valore X, oppure il valore X non è impostato.

  • Nessuna associazione per le proprietà estese del grafico (ad esempio, descrizioni comandi).

Chart.DataSource

e

Chart.DataBind

  • Viene eseguita una sola iterazione dell'origine dati per tutte le serie.

  • Supporta più valori Y.

  • Nessuna associazione per le proprietà estese del grafico (ad esempio, descrizioni comandi).

Points.DataBind(X)Y

  • Supporta più origini dati, incluse origini dati separate per i valori X e Y.

  • Supporta più valori Y.

  • Maggiore flessibilità rispetto ai due metodi elencati precedentemente.

  • Nessuna associazione per le proprietà estese del grafico (ad esempio, descrizioni comandi).

  • Una sola iterazione dei dati per ciascuna serie.

Points.DataBind

Come descritto precedentemente, con in più:

  • Supporto di associazione per le proprietà estese del grafico (ad esempio, descrizioni comandi).

  • Una sola iterazione dei dati per ciascuna serie.

  • Non supporta differenti origini dati per i valori X e Y di una serie.

Chart.DataBindCrossTable

  • È richiesto il passaggio di un solo dato.

  • Crea automaticamente una serie per ciascun valore univoco in una colonna specificata (valori univoci utilizzati per raggruppare dati).

  • Nessuno

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

Altre risorse

Associazione e modifica dati