DataGridView.DataSource DataGridView.DataSource DataGridView.DataSource DataGridView.DataSource Property

Definition

Ruft die Datenquelle ab, für die die DataGridView Daten anzeigt.Gets or sets the data source that the DataGridView is displaying data for.

public:
 property System::Object ^ DataSource { System::Object ^ get(); void set(System::Object ^ value); };
public object DataSource { get; set; }
member this.DataSource : obj with get, set
Public Property DataSource As Object

Eigenschaftswert

Das Objekt, das Daten für die anzuzeigende DataGridView enthält.The object that contains data for the DataGridView to display.

Ausnahmen

In der Datenquelle ist ein Fehler aufgetreten. Entweder ist kein Handler für das DataError-Ereignis vorhanden, oder der Handler hat die ThrowException-Eigenschaft auf true festgelegt.An error occurred in the data source and either there is no handler for the DataError event or the handler has set the ThrowException property to true. Das Ausnahmeobjekt kann in der Regel in den Typ FormatException umgewandelt werden.The exception object can typically be cast to type FormatException.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine einfache Datenbindung DataGridViewinitialisiert wird.The following code example demonstrates how to initialize a simple data-bound DataGridView. Außerdem wird veranschaulicht, wie die DataSource -Eigenschaft festgelegt wird.It also demonstrates how to set the DataSource property.

#using <System.Transactions.dll>
#using <System.EnterpriseServices.dll>
#using <System.Xml.dll>
#using <System.Drawing.dll>
#using <System.dll>
#using <System.Windows.Forms.dll>
#using <System.Data.dll>

using namespace System;
using namespace System::Data;
using namespace System::Data::SqlClient;
using namespace System::Windows::Forms;
using namespace System::Drawing;
public ref class Form1: public System::Windows::Forms::Form
{
public:
   Form1()
      : Form()
   {
      
      //This call is required by the Windows Form Designer.
      InitializeComponent();
      InitializeDataGridView();
      
      //Add any initialization after the InitializeComponent() call
   }


protected:

   ~Form1()
   {
      if ( components != nullptr )
      {
         delete components;
      }
   }

private:
   System::Windows::Forms::DataGridView ^ dataGridView1;
   System::Windows::Forms::BindingSource ^ bindingSource1;

   //Required by the Windows Form Designer
   System::ComponentModel::IContainer^ components;

   //NOTE: The following procedure is required by the Windows Form Designer
   //It can be modified using the Windows Form Designer.  
   //Do not modify it using the code editor.

   [System::Diagnostics::DebuggerNonUserCode]
   void InitializeComponent()
   {
      this->dataGridView1 = gcnew System::Windows::Forms::DataGridView;
      this->bindingSource1 = gcnew System::Windows::Forms::BindingSource;
      this->SuspendLayout();

      //
      //DataGridView1
      //
      this->dataGridView1->Location = System::Drawing::Point( 96, 71 );
      this->dataGridView1->Name = "DataGridView1";
      this->dataGridView1->Size = System::Drawing::Size( 321, 286 );
      this->dataGridView1->TabIndex = 0;

      //
      //Form1
      //
      this->ClientSize = System::Drawing::Size( 518, 413 );
      this->Controls->Add( this->dataGridView1 );
      this->Name = "Form1";
      this->Text = "Form1";
      this->ResumeLayout( false );
   }

internal:

   static property Form1^ GetInstance 
   {
      Form1^ get()
      {
         if ( m_DefaultInstance == nullptr || m_DefaultInstance->IsDisposed )
         {
            System::Threading::Monitor::Enter( m_SyncObject );
            try
            {
               if ( m_DefaultInstance == nullptr || m_DefaultInstance->IsDisposed )
               {
                  m_DefaultInstance = gcnew Form1;
               }
            }
            finally
            {
               System::Threading::Monitor::Exit( m_SyncObject );
            }
         }

         return m_DefaultInstance;
      }
   }

private:
   static Form1^ m_DefaultInstance;
   static Object^ m_SyncObject = gcnew Object;

   void InitializeDataGridView()
   {
      try
      {
         // Set up the DataGridView.
         dataGridView1->Dock = DockStyle::Fill;

         // Automatically generate the DataGridView columns.
         dataGridView1->AutoGenerateColumns = true;

         // Set up the data source.
         bindingSource1->DataSource = GetData( "Select * From Products" );
         dataGridView1->DataSource = bindingSource1;

         // Automatically resize the visible rows.
         dataGridView1->AutoSizeRowsMode = DataGridViewAutoSizeRowsMode::DisplayedCellsExceptHeaders;

         // Set the DataGridView control's border.
         dataGridView1->BorderStyle = BorderStyle::Fixed3D;

         // Put the cells in edit mode when user enters them.
         dataGridView1->EditMode = DataGridViewEditMode::EditOnEnter;
      }
      catch ( SqlException^ ) 
      {
         MessageBox::Show( "To run this sample replace connection.ConnectionString"
         " with a valid connection string to a Northwind"
         " database accessible to your system.", "ERROR", MessageBoxButtons::OK, MessageBoxIcon::Exclamation );
         System::Threading::Thread::CurrentThread->Abort();
      }
      catch ( System::Exception^ ex ) 
      {
         MessageBox::Show( ex->ToString() );
      }
   }


   DataTable^ GetData( String^ sqlCommand )
   {
      String^ connectionString = "Integrated Security=SSPI;Persist Security Info=False;"
      "Initial Catalog=Northwind;Data Source= localhost";
      SqlConnection^ northwindConnection = gcnew SqlConnection( connectionString );
      SqlCommand^ command = gcnew SqlCommand( sqlCommand,northwindConnection );
      SqlDataAdapter^ adapter = gcnew SqlDataAdapter;
      adapter->SelectCommand = command;
      DataTable^ table = gcnew DataTable;
      adapter->Fill( table );
      return table;
   }
};

int main()
{
   Application::Run( gcnew Form1 );
}
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Drawing;

public class Form1 : System.Windows.Forms.Form
{
    private DataGridView dataGridView1 = new DataGridView();
    private BindingSource bindingSource1 = new BindingSource();

    public Form1()
    {
        dataGridView1.Dock = DockStyle.Fill;
        this.Controls.Add(dataGridView1);
        InitializeDataGridView();
    }

    private void InitializeDataGridView()
    {
        try
        {
            // Set up the DataGridView.
            dataGridView1.Dock = DockStyle.Fill;

            // Automatically generate the DataGridView columns.
            dataGridView1.AutoGenerateColumns = true;

            // Set up the data source.
            bindingSource1.DataSource = GetData("Select * From Products");
            dataGridView1.DataSource = bindingSource1;

            // Automatically resize the visible rows.
            dataGridView1.AutoSizeRowsMode =
                DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders;

            // Set the DataGridView control's border.
            dataGridView1.BorderStyle = BorderStyle.Fixed3D;

            // Put the cells in edit mode when user enters them.
            dataGridView1.EditMode = DataGridViewEditMode.EditOnEnter;
        }
        catch (SqlException)
        {
            MessageBox.Show("To run this sample replace connection.ConnectionString" +
                " with a valid connection string to a Northwind" +
                " database accessible to your system.", "ERROR",
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            System.Threading.Thread.CurrentThread.Abort();
        }
    }

    private static DataTable GetData(string sqlCommand)
    {
        string connectionString = "Integrated Security=SSPI;" +
            "Persist Security Info=False;" +
            "Initial Catalog=Northwind;Data Source=localhost";

        SqlConnection northwindConnection = new SqlConnection(connectionString);

        SqlCommand command = new SqlCommand(sqlCommand, northwindConnection);
        SqlDataAdapter adapter = new SqlDataAdapter();
        adapter.SelectCommand = command;

        DataTable table = new DataTable();
        table.Locale = System.Globalization.CultureInfo.InvariantCulture;
        adapter.Fill(table);

        return table;
    }

    [STAThreadAttribute()]
    public static void Main()
    {
        Application.Run(new Form1());
    }
}
Imports System.Data
Imports System.Data.SqlClient
Imports System.Windows.Forms
Imports System.Drawing
Imports System

Public Class Form1
    Inherits System.Windows.Forms.Form

    Private WithEvents dataGridView1 As New DataGridView()
    Private bindingSource1 As New BindingSource()

    Public Sub New()

        Me.dataGridView1.Dock = DockStyle.Fill
        Me.Controls.Add(Me.dataGridView1)
        InitializeDataGridView()

    End Sub

    Private Sub InitializeDataGridView()
        Try
            ' Set up the DataGridView.
            With Me.dataGridView1
                ' Automatically generate the DataGridView columns.
                .AutoGenerateColumns = True

                ' Set up the data source.
                bindingSource1.DataSource = GetData("Select * From Products")
                .DataSource = bindingSource1

                ' Automatically resize the visible rows.
                .AutoSizeRowsMode = _
                    DataGridViewAutoSizeRowsMode.DisplayedCellsExceptHeaders

                ' Set the DataGridView control's border.
                .BorderStyle = BorderStyle.Fixed3D

                ' Put the cells in edit mode when user enters them.
                .EditMode = DataGridViewEditMode.EditOnEnter
            End With
        Catch ex As SqlException
            MessageBox.Show("To run this sample replace " _
                & "connection.ConnectionString with a valid connection string" _
                & "  to a Northwind database accessible to your system.", _
                "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            System.Threading.Thread.CurrentThread.Abort()
        End Try
    End Sub

    Private Shared Function GetData(ByVal sqlCommand As String) _
        As DataTable

        Dim connectionString As String = _
            "Integrated Security=SSPI;Persist Security Info=False;" _
            & "Initial Catalog=Northwind;Data Source=localhost"

        Dim northwindConnection As SqlConnection = _
            New SqlConnection(connectionString)

        Dim command As New SqlCommand(sqlCommand, northwindConnection)
        Dim adapter As SqlDataAdapter = New SqlDataAdapter()
        adapter.SelectCommand = command

        Dim table As New DataTable
        table.Locale = System.Globalization.CultureInfo.InvariantCulture
        adapter.Fill(table)

        Return table

    End Function

    <STAThreadAttribute()> _
    Public Shared Sub Main()
        Application.Run(New Form1)
    End Sub

End Class

Hinweise

Die DataGridView -Klasse unterstützt das Standardmodell für die Windows Forms Datenbindung.The DataGridView class supports the standard Windows Forms data-binding model. Dies bedeutet, dass die Datenquelle einen beliebigen Typ aufweisen kann, der eine der folgenden Schnittstellen implementiert:This means the data source can be of any type that implements one of the following interfaces:

Bestimmte Beispiele finden Sie im Beispiel Abschnitt und in der Task Tabelle am Ende dieses Abschnitts.For specific examples, see the Example section and the task table at the end of this section.

In der Regel Binden Sie eine Bindung BindingSource an eine Komponente und BindingSource binden die Komponente an eine andere Datenquelle oder füllen Sie mit Geschäftsobjekten auf.Typically, you will bind to a BindingSource component and bind the BindingSource component to another data source or populate it with business objects. Die BindingSource Komponente ist die bevorzugte Datenquelle, da Sie an eine Vielzahl von Datenquellen gebunden werden kann und viele Probleme mit der Datenbindung automatisch lösen kann.The BindingSource component is the preferred data source because it can bind to a wide variety of data sources and can resolve many data binding issues automatically.

Wenn Sie an eine Datenquelle binden, die mehrere Listen oder Tabellen enthält, müssen Sie DataMember die-Eigenschaft auf eine Zeichenfolge festlegen, die die Liste oder Tabelle angibt, an die die Bindung erfolgen soll.When binding to a data source that contains multiple lists or tables, you must set the DataMember property to a string that specifies the list or table to bind to. Wenn Sie jedoch eine BindingSource Bindung an eine Komponente durchführt, die mehrere Listen oder Tabellen enthält, DataMember können Sie stattdessen BindingSource die-Eigenschaft der Komponente festlegen.When binding to a BindingSource component that contains multiple lists or tables, however, you can set the DataMember property of the BindingSource component instead.

Wenn Sie anstelle von Datenbankdaten an eine Objekt Auflistung binden, legen Sie in der DataSourceNullValue Regel die-Eigenschaft des-Objekts DefaultCellStyle , das null von der-Eigenschaft zurückgegeben wird DBNull.Value, auf fest, anstatt den Standardwert von zu verwenden. geeignet für Datenbankdaten.When binding to an object collection rather than to database data, you will typically set the DataSourceNullValue property of the object returned by the DefaultCellStyle property to null rather than using the default value of DBNull.Value, which is appropriate for database data.

Weitere Informationen finden Sie unter Anzeigen von Daten im Windows Forms DataGridView-SteuerElement.For more information, see Displaying Data in the Windows Forms DataGridView Control. In der folgenden Tabelle finden Sie direkte Links zu allgemeinen Aufgaben im DataSource Zusammenhang mit der-Eigenschaft.The following table provides direct links to common tasks related to the DataSource property.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Master-/Detailformulars mit zwei Windows Forms DataGridView - Steuerelementen und Gewusst wie: Binden Sie Objekte an Windows Forms DataGridView-Steuerelemente.See Walkthrough: Creating a Master/Detail Form Using Two Windows Forms DataGridView Controls and How to: Bind Objects to Windows Forms DataGridView Controls.

Gilt für:

Siehe auch