Compartir a través de


Enlazar datos a series con controles Chart

En este tema se describen las distintas técnicas de enlace de datos.Para obtener un tutorial sobre cómo enlazar datos a series, vea Tutorial: Enlazar datos entre un gráfico y una base de datos.

Métodos de enlace de datos

Método

Ventajas

Desventajas

Chart.DataBindTable

  • Enlace simple para valores X e Y.

  • Creación automática de series en función del número de columnas del origen de datos.

  • Solo se necesitan datos de un paso a través.

  • Sin varios valores Y por serie.

  • Todas las series tienen el mismo valor X o este valor no está establecido.

  • Sin enlace para propiedades de gráfico extendidas (por ejemplo, información sobre herramientas).

Chart.DataSource

y

Chart.DataBind

  • El origen de datos se itera una vez para todas las series.

  • Admite varios valores Y.

  • Sin enlace para propiedades de gráfico extendidas (por ejemplo, información sobre herramientas).

Points.DataBind(X)Y

  • Admite varios orígenes de datos, incluidos orígenes de datos independientes para los valores X e Y.

  • Admite varios valores Y.

  • Más flexible si se compara con los dos métodos citados anteriormente.

  • Sin enlace para propiedades de gráfico extendidas (por ejemplo, información sobre herramientas).

  • Una iteración en los datos por serie.

Points.DataBind

Igual al anterior y:

  • Admite enlace para propiedades de gráfico extendidas (por ejemplo, información sobre herramientas).

  • Una iteración en los datos por serie.

  • No admite orígenes de datos distintos para los valores X e Y de una serie.

Chart.DataBindCrossTable

  • Solo se necesitan datos de un paso a través.

  • Crea automáticamente una serie para cada valor único en una columna especificada (valores únicos usados para agrupar datos).

  • Ninguna

Orígenes de datos

A continuación se citan los posibles orígenes de datos usados para enlazar:

  • DataView.

  • Lectores de datos (SQL, OleDB).

  • DataSet (SOLO enlace de datos DataSource).

  • Matrices.

  • Listas.

  • Todos los objetos IEnumerable.

Nota

Cuando use orígenes de datos no tabulares como listas o matrices, solo puede enlazar los valores Y, independientemente del tipo de método de enlace de datos usado.Esto se debe a que no se pueden especificar columnas para valores X ni otras propiedades de gráfico, como Tooltip.

Ejemplo

En el siguiente código se muestra cómo enlazar un gráfico de columnas a una tabla de base de datos de Access.La tabla "SALESCOUNTS" tiene una columna "SalesRep" con los nombres de los vendedores, una columna "Prod A", una columna "Prod B", una columna "Prod C", una columna "Prod D", una columna "Prod E" y una columna "Other".El método DataBindTable crea automáticamente seis objetos Series: uno para cada columna de producto y uno para la columna "Other".Existe de forma automática un punto de datos en cada serie por registro.El método también enlaza los valores X de las seis series a la columna "SalesRep" y la usa para las seis etiquetas de eje de los puntos de datos.

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";
}

Vea también

Referencia

System.Windows.Forms.DataVisualization.Charting

System.Web.UI.DataVisualization.Charting

Otros recursos

Enlazar y manipular datos