Freigeben über


DataGrid.DataSource-Eigenschaft

Ruft die Datenquelle ab, für die Daten im Datenblatt angezeigt werden, oder legt diese fest.

Namespace: System.Windows.Forms
Assembly: System.Windows.Forms (in system.windows.forms.dll)

Syntax

'Declaration
Public Property DataSource As Object
'Usage
Dim instance As DataGrid
Dim value As Object

value = instance.DataSource

instance.DataSource = value
public Object DataSource { get; set; }
public:
property Object^ DataSource {
    Object^ get ();
    void set (Object^ value);
}
/** @property */
public Object get_DataSource ()

/** @property */
public void set_DataSource (Object value)
public function get DataSource () : Object

public function set DataSource (value : Object)

Eigenschaftenwert

Ein Objekt, das als Datenquelle dient.

Hinweise

Zur Laufzeit legen Sie die DataSource-Eigenschaft und die DataMember-Eigenschaft mit der SetDataBinding-Methodefest.

Folgende Datenquellen sind gültig:

Weitere Informationen zu Datenquellen finden Sie in der Übersicht über die Binding-Klasse.

Wenn der DataSource-Verweis mehrere Tabellen enthält, müssen Sie die DataMember-Eigenschaft auf eine Zeichenfolge festlegen, die die Tabelle angibt, an die gebunden werden soll. Wenn die DataSource z. B. ein DataSet oder ein DataViewManager ist, der drei Tabellen mit den Namen Customers, Orders und OrderDetails enthält, müssen Sie die Tabelle angeben, an die gebunden werden soll.

Wird die DataSource auf ein Objekt festgelegt, das weder die IList-Schnittstelle noch eine IListSource implementiert, löst das Datenblatt eine Ausnahme aus.

Sie können ein Datenblatt erstellen, in dem Daten bearbeitet, aber keine neuen Zeilen hinzufügt werden können, indem Sie eine DataView als Datenquelle verwenden und die AddNew-Eigenschaft auf false festlegen.

Das DataGrid kann nur an ein stark typisiertes Array von Objekten gebunden werden, wenn der Objekttyp öffentliche Eigenschaften enthält. Legen Sie zum Erstellen eines DataGridTableStyle, der das Array anzeigt, die DataGridTableStyle.MappingName-Eigenschaft auf typename fest, wobei typename durch den Namen des Objekttyps ersetzt wird. Bei der MappingName-Eigenschaft wird zwischen Groß- und Kleinschreibung unterschied unterschieden, achten Sie daher darauf, dass der Typname exakt überstimmt. Ein Beispiel finden Sie unter der MappingName-Eigenschaft.

Sie können das DataGrid auch an eine ArrayList binden. Ein Feature der ArrayList ist, dass sie Objekte verschiedenen Typs enthalten kann. Das DataGrid kann aber nur an eine Liste gebunden werden, in der alle Elemente von demselben Typ wie das erste Element sind. Das heißt, dass alle Objekte denselben Typ haben oder von derselben Klasse erben müssen wie das erste Listenelement. Wenn z. B. das erste Element in der Liste ein Control ist, kann das zweite Element eine TextBox sein (die von Control erbt). Wenn jedoch das erste Element eine TextBox ist, kann das zweite Objekt kein Control sein. Eine ArrayList muss außerdem Elemente enthalten, wenn es gebunden wird. Eine leere ArrayList ergibt ein leeres Datenblatt. Darüber hinaus müssen die Objekte in der ArrayList öffentliche Eigenschaften enthalten. Legen Sie zum Binden an eine ArrayList den MappingName des DataGridTableStyle auf "ArrayList" (den Typnamen) fest.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie die DataSource und, falls erforderlich, der DataMember festgelegt werden, um das System.Windows.Forms.DataGrid sowohl an die DataView als auch an das DataSet zu binden. Außerdem wird gezeigt, wie Datenquellen aus dem System.Windows.Forms.DataGrid zurückgegeben werden.

Private Sub BindToDataView(myGrid As DataGrid)
    ' Create a DataView using the DataTable.
    Dim myTable As New DataTable("Suppliers")
    ' Insert code to create and populate columns.
    Dim myDatatView As New DataView(myTable)
    myGrid.DataSource = myDatatView
End Sub 'BindToDataView

Private Sub BindToDataSet(myGrid As DataGrid)
    ' Create a DataSet.
    Dim myDataSet As New DataSet("myDataSet")
    ' Insert code to populate DataSet with several tables.
    myGrid.DataSource = myDataSet
    ' Use the DataMember property to specify the DataTable.
    myGrid.DataMember = "Suppliers"
End Sub 'BindToDataSet

Private Function GetDataViewFromDataSource() As DataView
    ' Create a DataTable variable, and set it to the DataSource.
    Dim myDatatView As DataView
    myDatatView = CType(dataGrid1.DataSource, DataView)
    Return myDatatView
End Function 'GetDataViewFromDataSource

Private Function GetDataSetFromDataSource() As DataSet
    ' Create a DataSet variable, and set it to the DataSource.
    Dim myDataSet As DataSet
    myDataSet = CType(dataGrid1.DataSource, DataSet)
    Return myDataSet
End Function 'GetDataSetFromDataSource
private void BindToDataView(DataGrid myGrid){
    // Create a DataView using the DataTable.
    DataTable myTable = new DataTable("Suppliers");
    // Insert code to create and populate columns.
    DataView myDataView = new DataView(myTable);
    myGrid.DataSource = myDataView;
 }
 private void BindToDataSet(DataGrid myGrid){
    // Create a DataSet.
    DataSet myDataSet = new DataSet("myDataSet");
    // Insert code to populate DataSet with several tables.
    myGrid.DataSource = myDataSet;
    // Use the DataMember property to specify the DataTable.
    myGrid.DataMember = "Suppliers";
 }
 private DataView GetDataViewFromDataSource(){
    // Create a DataTable variable, and set it to the DataSource.
    DataView myDataView;
    myDataView = (DataView) dataGrid1.DataSource;
    return myDataView;
 }
 private DataSet GetDataSetFromDataSource(){
    // Create a DataSet variable, and set it to the DataSource.
    DataSet myDataSet;
    myDataSet = (DataSet) dataGrid1.DataSource;
    return myDataSet;
 }
private:
   void BindToDataView( DataGrid^ myGrid )
   {
      // Create a DataView using the DataTable.
      DataTable^ myTable = gcnew DataTable( "Suppliers" );
      // Insert code to create and populate columns.
      DataView^ myDataView = gcnew DataView( myTable );
      myGrid->DataSource = myDataView;
   }

   void BindToDataSet( DataGrid^ myGrid )
   {
      // Create a DataSet.
      DataSet^ myDataSet = gcnew DataSet( "myDataSet" );
      // Insert code to populate DataSet with several tables.
      myGrid->DataSource = myDataSet;
      // Use the DataMember property to specify the DataTable.
      myGrid->DataMember = "Suppliers";
   }

   DataView^ GetDataViewFromDataSource()
   {
      // Create a DataTable variable, and set it to the DataSource.
      DataView^ myDataView;
      myDataView = (DataView^)(dataGrid1->DataSource);
      return myDataView;
   }

   DataSet^ GetDataSetFromDataSource()
   {
      // Create a DataSet variable, and set it to the DataSource.
      DataSet^ myDataSet;
      myDataSet = (DataSet^)(dataGrid1->DataSource);
      return myDataSet;
   }
private void BindToDataView(DataGrid myGrid)
{
    // Create a DataView using the DataTable.
    DataTable myTable = new DataTable("Suppliers");
    // Insert code to create and populate columns.
    DataView myDataView = new DataView(myTable);
    myGrid.set_DataSource(myDataView);
} //BindToDataView

private void BindToDataSet(DataGrid myGrid)
{
    // Create a DataSet.
    DataSet myDataSet = new DataSet("myDataSet");
    // Insert code to populate DataSet with several tables.
    myGrid.set_DataSource(myDataSet);
    // Use the DataMember property to specify the DataTable.
    myGrid.set_DataMember("Suppliers");
} //BindToDataSet

private DataView GetDataViewFromDataSource()
{
    // Create a DataTable variable, and set it to the DataSource.
    DataView myDataView;
    myDataView = (DataView)(dataGrid1.get_DataSource());
    return myDataView;
} //GetDataViewFromDataSource

private DataSet GetDataSetFromDataSource()
{
    // Create a DataSet variable, and set it to the DataSource.
    DataSet myDataSet;
    myDataSet = ((DataSet)(dataGrid1.get_DataSource()));
    return myDataSet;
} //GetDataSetFromDataSource

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

DataGrid-Klasse
DataGrid-Member
System.Windows.Forms-Namespace
DataGrid.DataMember-Eigenschaft
DataSet
DataViewManager
DataView