Привязка данных к рядам с помощью элементов управления диаграммы
В этом разделе описаны различные методы привязки данных.Учебник по привязке данных к рядам см. в разделе Учебник. Привязка данных диаграммы к базе данных.
Методы привязки данных
Метод |
Преимущества |
Недостатки |
---|---|---|
Chart.DataBindTable |
|
|
Chart.DataSource и Chart.DataBind |
|
|
Points.DataBind(X)Y |
|
|
Points.DataBind |
Аналогично описанному выше, а также:
|
|
Chart.DataBindCrossTable |
|
|
Источники данных
Далее представлены возможные источники данных, используемые для привязки.
DataView.
Модули чтения данных (SQL, OleDB).
DataSet (только для привязки данных DataSource).
Массивы.
Списки.
Все объекты IEnumerable.
Примечание
Если используются нетабличные источники данных, такие как списки и массивы, привязка возможна только для значений Y, вне зависимости от типа используемого метода привязки.Это обусловлено тем, что столбцы нельзя указывать для значений X и других свойств диаграммы, таких как Tooltip.
Пример
В следующем коде показано, как привязать гистограмму к таблице базы данных Access.Таблица «SALESCOUNTS» содержит столбец «SalesRep» с именами продавцов, столбец «Prod A», столбец «Prod B», столбец «Prod C», столбец «Prod D», столбец «Prod E» и столбец «Other».Метод DataBindTable автоматически создает шесть объектов Series: по одному для каждого столбца товаров и один для столбца «Other».В каждом ряду автоматически создается одна точка данных на запись.Метод также привязывает значения X шести рядов к столбцу «SalesRep», который используется для меток оси точек данных.
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";
}
См. также
Ссылки
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting