Auf Englisch lesen

Freigeben über


DataGridView.DataSource Eigenschaft

Definition

Ruft die Datenquelle ab, für die die DataGridView Daten anzeigt.

public object DataSource { get; set; }
public object? DataSource { get; set; }

Eigenschaftswert

Das Objekt, das Daten für die anzuzeigende DataGridView enthält.

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. Das Ausnahmeobjekt kann in der Regel in den Typ FormatException umgewandelt werden.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie eine einfache datengebundene DataGridViewInitialisierung ausgeführt wird. Außerdem wird veranschaulicht, wie die DataSource -Eigenschaft festgelegt wird.

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());
    }
}

Hinweise

Die DataGridView -Klasse unterstützt das Standarddatenbindungsmodell Windows Forms. Dies bedeutet, dass die Datenquelle einen beliebigen Typ aufweisen kann, der eine der folgenden Schnittstellen implementiert:

Spezifische Beispiele finden Sie im Abschnitt Beispiel und in der Aufgabentabelle am Ende dieses Abschnitts.

Normalerweise erfolgt die Bindung an eine BindingSource-Komponente, und die BindingSource-Komponente wird an eine andere Datenquelle gebunden oder mit Geschäftsobjekten gefüllt. Die BindingSource-Komponente ist die bevorzugte Datenquelle, da sie an eine Vielzahl von Datenquellen gebunden werden kann und viele Datenbindungsprobleme automatisch beheben kann.

Beim Binden an eine Datenquelle, die mehrere Listen oder Tabellen enthält, müssen Sie die DataMember -Eigenschaft auf eine Zeichenfolge festlegen, die die Liste oder Tabelle angibt, an die oder an die gebunden werden soll. Beim Binden an eine BindingSource Komponente, die mehrere Listen oder Tabellen enthält, können Sie jedoch stattdessen die DataMember Eigenschaft der BindingSource Komponente festlegen.

Beim Binden an eine Objektauflistung statt an Datenbankdaten legen Sie in der Regel die DataSourceNullValue Eigenschaft des von der DefaultCellStyle -Eigenschaft zurückgegebenen Objekts auf fest, anstatt den Standardwert von DBNull.Valuezu null verwenden, der für Datenbankdaten geeignet ist.

Weitere Informationen finden Sie unter Anzeigen von Daten im Windows Forms DataGridView-Steuerelements. Die folgende Tabelle enthält direkte Links zu allgemeinen Aufgaben im Zusammenhang mit der DataSource -Eigenschaft.

Weitere Informationen finden Sie unter Exemplarische Vorgehensweise: Erstellen eines Master-/Detailformulars mit zwei Windows Forms DataGridView-Steuerelementen und Vorgehensweise: Binden von Objekten an Windows Forms DataGridView-Steuerelemente.

Gilt für:

Produkt Versionen
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

Weitere Informationen