Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
DataGridView.DataSource-Eigenschaft
Ruft die Datenquelle ab, für die die DataGridView Daten anzeigt.
Assembly: System.Windows.Forms (in System.Windows.Forms.dll)
| Ausnahme | Bedingung |
|---|---|
| Exception |
In der Datenquelle ist ein Fehler aufgetreten, und entweder ist kein Handler für das DataError-Ereignis vorhanden, oder der Handler hat die DataGridViewDataErrorEventArgs.ThrowException-Eigenschaft auf true festgelegt. Das Ausnahmeobjekt kann i. d. R. in den Typ FormatException umgewandelt werden. |
Die DataGridView-Klasse unterstützt das Standardmodell für die Datenbindung bei Windows Forms. Dies bedeutet, dass die Datenquelle beliebigen Typs sein kann, sofern eine der folgenden Schnittstellen implementiert wird:
-
Die IList-Schnittstelle, einschließlich eindimensionaler Arrays.
-
Die IListSource-Schnittstelle, z. B. die DataTable-Klasse und die DataSet-Klasse.
-
Die IBindingList-Schnittstelle, z. B. die BindingList<T>-Klasse.
-
Die IBindingListView-Schnittstelle, z. B. die BindingSource-Klasse.
Spezifische Beispiele finden Sie im Beispielabschnitt und in der Aufgabentabelle am Ende dieses Abschnitts.
Normalerweise führen Sie die Bindung an eine BindingSource-Komponente aus und binden die BindingSource-Komponente an eine andere Datenquelle oder füllen diese mit Geschäftsobjekten. Die BindingSource-Komponente stellt die bevorzugte Datenquelle dar, da mit dieser Datenquelle Bindungen an eine Vielzahl von Datenquellen vorgenommen werden können und zahlreiche Datenbindungsprobleme automatisch behoben werden.
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 gebunden werden soll. Beim Binden an eine BindingSource-Komponente, die mehrere Listen oder Tabellen enthält, können Sie allerdings 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 Objekts, das von der DefaultCellStyle-Eigenschaft zurückgegeben wurde, auf null fest, statt den Standardwert DBNull.Value zu verwenden, der sich für Datenbankdaten eignet.
Weitere Informationen finden Sie unter Anzeigen von Daten im DataGridView-Steuerelement in Windows Forms. Die folgende Tabelle enthält Links direkt zu häufig auszuführende Aufgaben im Zusammenhand mit der DataSource-Eigenschaft:
Im folgenden Codebeispiel wird veranschaulicht, wie eine einfache datengebundene DataGridView initialisiert wird. Darüber hinaus wird das Festlegen der DataSource-Eigenschaft veranschaulicht.
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()); } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.