Привязка данных к рядам
В этом разделе описаны различные методы привязки данных.Учебник по привязке данных к рядам см. в разделе Учебник. Привязка данных диаграммы к базе данных.
Методы привязки данных
Метод |
Преимущества |
Недостатки |
---|---|---|
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