Binden von Daten an Reihen in Diagrammsteuerelementen
In diesem Thema werden die verschiedenen Datenbindungstechniken beschrieben. Ein Lernprogramm zum Binden von Daten an Reihen finden Sie unter Lernprogramm: Datenbindung eines Diagramms an eine Datenbank.
Datenbindungsmethoden
Methode |
Vorteile |
Nachteile |
---|---|---|
Chart.DataBindTable |
|
|
Chart.DataSource und Chart.DataBind |
|
|
Points.DataBind(X)Y |
|
|
Points.DataBind |
Genauso wie oben, plus:
|
|
Chart.DataBindCrossTable |
|
|
Datenquellen
Für die Bindung können die folgenden Datenquellen verwendet werden:
DataView
Datenreader (SQL, OleDB)
DataSet (NUR DataSource-Datenbindung)
Arrays
Listen
Alle IEnumerable-Objekte
Hinweis
Wenn Sie nicht tabellarische Datenquellen verwenden, z. B. Listen oder Arrays, können Sie nur Y-Werte binden, unabhängig vom Typ der verwendeten Datenbindungsmethode.Das liegt daran, dass für X-Werte keine Spalten und anderen Diagrammeigenschaften angegeben werden können, z. B. Tooltip.
Beispiel
Im folgenden Code wird veranschaulicht, wie Sie ein Säulendiagramm an eine Access-Datenbanktabelle binden. Die Tabelle "SALESCOUNTS" enthält die Spalte "SalesRep" mit den Namen der Vertriebsmitarbeiter, die Spalten "Prod A", "Prod B", "Prod C", "Prod D" und "Prod E" sowie die Spalte "Other". Die DataBindTable-Methode erstellt automatisch sechs Series-Objekte: eines für jede Produktspalte und eines für die Spalte "Other". In jeder Reihe ist automatisch ein Datenpunkt pro Datensatz vorhanden. Die Methode bindet zudem die X-Werte der sechs Reihen an die Spalte "SalesRep" und verwendet diese für die Achsenbezeichnungen der Datenpunkte.
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";
}
Siehe auch
Referenz
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting