Поделиться через


Привязка данных к рядам с помощью элементов управления диаграммы

В этом разделе описаны различные методы привязки данных.Учебник по привязке данных к рядам см. в разделе Учебник. Привязка данных диаграммы к базе данных.

Методы привязки данных

Метод

Преимущества

Недостатки

Chart.DataBindTable

  • Простая привязка для значений X и Y.

  • Автоматическое создание рядов в зависимости от количества столбцов в источнике данных.

  • Требуется только один проход по данным.

  • Отсутствие нескольких значений Y в ряду.

  • Все ряды имеют одинаковое значение X, или значение X не задано.

  • Отсутствует привязка для расширенных свойств диаграммы (например, подсказок).

Chart.DataSource

и

Chart.DataBind

  • По источнику данных выполняется один проход для всех рядов.

  • Поддерживает несколько значений Y.

  • Отсутствует привязка для расширенных свойств диаграммы (например, подсказок).

Points.DataBind(X)Y

  • Поддержка нескольких источников данных, в том числе отдельных источников для значений X и Y.

  • Поддерживает несколько значений Y.

  • Большая гибкость по сравнению с двумя описанными выше методами.

  • Отсутствует привязка для расширенных свойств диаграммы (например, подсказок).

  • Один проход по данным для каждого ряда.

Points.DataBind

Аналогично описанному выше, а также:

  • Поддержка привязки для расширенных свойств диаграммы (например, подсказок).

  • Один проход по данным для каждого ряда.

  • Не поддерживаются различные источники данных для значений X и Y ряда.

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

Другие ресурсы

Привязка и обработка данных