Associando dados à série com controles de gráfico
Este tópico descreve as várias técnicas de ligação de dados. Para obter um tutorial sobre a série de dados, consulte Tutorial: um gráfico para um banco de dados de associação de dados.
Métodos de associação de dados
Método |
Vantagens |
Desvantagens |
---|---|---|
Chart.DataBindTable |
|
|
Chart.DataSource e Chart.DataBind |
|
|
Points.DataBind(X)Y |
|
|
Points.DataBind |
Mesmo que acima, mais:
|
|
Chart.DataBindCrossTable |
|
|
Fontes de dados
Estas são as possíveis fontes de dados usadas para associação:
Exibição de dados.
Leitores de dados (SQL, OleDB).
Conjunto de dados (somente de vinculação de dados da fonte de dados).
Matrizes.
Lista.
Todos os objetos de IEnumerable.
Dica
Ao usar fontes de dados não tabulares como listas ou matrizes, você pode associar apenas valores de Y, independentemente do tipo de método de ligação de dados usado.Isso ocorre porque as colunas não podem ser especificadas para X valores e outras propriedades do gráfico, como Tooltip.
Exemplo
O código a seguir demonstra como associar um gráfico de colunas a uma tabela de banco de dados do Access. A tabela "SALESCOUNTS" tem uma coluna "Representante" com os nomes do pessoal de vendas, uma coluna "Prod um", uma coluna "Prod B", uma coluna "Prod C", uma coluna "Prod D", uma coluna "Prod E" e uma coluna "Other". O DataBindTable método cria automaticamente seis Series objetos: um para cada coluna de produto e outro para a coluna "Other". Um ponto de dados em cada série existe automaticamente por registro. O método também vincula os valores de X da série de seis para a coluna "Representante" e usa-o para os rótulos de eixo dos pontos de dados.
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";
}
Consulte também
Referência
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting