Share via


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

  • Einfache Bindung für X und Y-Werte

  • Automatische Erstellung von Reihen basierend auf der Anzahl der Spalten in der Datenquelle

  • Nur eine Weitergabe von Daten erforderlich

  • Nicht mehrere Y-Werte pro Reihe

  • Gleicher X-Wert für alle Reihen oder X-Wert nicht eingestellt

  • Keine Bindung für erweiterte Diagrammeigenschaften (z. B. QuickInfos)

Chart.DataSource

und

Chart.DataBind

  • Ein Durchlauf der Datenquelle für alle Reihen

  • Unterstützt mehrere Y-Werte

  • Keine Bindung für erweiterte Diagrammeigenschaften (z. B. QuickInfos)

Points.DataBind(X)Y

  • Unterstützt mehrere Datenquellen, einschließlich separater Datenquellen für X und Y-Werte

  • Unterstützt mehrere Y-Werte

  • Höhere Flexibilität im Vergleich zu den beiden vorherigen Methoden

  • Keine Bindung für erweiterte Diagrammeigenschaften (z. B. QuickInfos)

  • Ein Durchlauf durch die Daten pro Reihe

Points.DataBind

Genauso wie oben, plus:

  • Unterstützt die Bindung erweiterter Diagrammeigenschaften (z. B. QuickInfos)

  • Ein Durchlauf durch die Daten pro Reihe

  • Unterstützt keine unterschiedlichen Datenquellen für X und Y-Werte einer Reihe

Chart.DataBindCrossTable

  • Nur eine Weitergabe von Daten erforderlich

  • Automatische Erstellung einer Reihe für jeden eindeutigen Wert in einer angegebenen Spalte (eindeutige Werte zum Gruppieren von Daten)

  • Keine

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

Weitere Ressourcen

Datenbindung und -bearbeitung