Gewusst wie: Bearbeiten von Zeilen in einer DataTable
Aktualisiert: November 2007
Um eine vorhandene Zeile in einer DataTable zu bearbeiten, müssen die zu bearbeitende DataRow suchen und den gewünschten Spalten die aktualisierten Werte zuweisen.
In den folgenden Beispielen wird veranschaulicht, wie Zeilen sowohl in typisierten als auch in nicht typisierten Datasets gesucht und geändert werden.
Bearbeiten eines Datensatzes in einer DataTable, wenn der Index der zu bearbeitenden Zeile nicht bekannt ist
In der Regel kennen Sie den Index der zu bearbeitenden Zeile nicht. Datentabellen in typisierten Datasets werden mit einer FindBy-Methode erstellt. Diese sucht eine Zeile anhand des Primärschlüssels der Tabelle.
So aktualisieren Sie vorhandene Datensätze in typisierten Datasets (Zeilenindex nicht bekannt)
Weisen Sie einer Variablen mithilfe der generierten FindBy-Methode eine spezifische DataRow zu, und verwenden Sie anschließend diese Variable, um auf die zu bearbeitenden Spalten zuzugreifen und ihnen neue Werte zuzuweisen.
Im folgenden Beispiel ist die Spalte CustomerID der Primärschlüsel der Tabelle Customers. Die generierte FindBy-Methode ist daher FindByCustomerID.
Dim customersRow As NorthwindDataSet.CustomersRow customersRow = NorthwindDataSet1.Customers.FindByCustomerID("ALFKI") customersRow.CompanyName = "Updated Company Name" customersRow.City = "Seattle"
NorthwindDataSet.CustomersRow customersRow = northwindDataSet1.Customers.FindByCustomerID("ALFKI"); customersRow.CompanyName = "Updated Company Name"; customersRow.City = "Seattle";;
In der Regel kennen Sie den Index der zu bearbeitenden Zeile nicht. Datentabellen in nicht typisierten Datasets werden mit einer Select-Methode erstellt, die ein Array von DataRows zurückgibt.
So aktualisieren Sie vorhandene Datensätze in nicht typisierten Datasets (Zeilenindex nicht bekannt)
Verwenden Sie die Select-Methode der DataTable, um nach einer bestimmten Zeile zu suchen und den gewünschten Spalten neue Werte zuzuweisen.
Im folgenden Beispiel ist die Spalte CustomerID der Primärschlüsel der Tabelle Customers. Daher wird durch den Aufruf der Select-Methode und das Suchen nach dem Primärschlüssel nur eine Zeile gefunden. Der Rückgabetyp ist nach wie vor ein Array von DataRows, daher wird in diesem Array auf den (0)-Index, d. h. auf die erste Zeile, zugegriffen.
Dim customerRow() As Data.DataRow customerRow = DataSet1.Tables("Customers").Select("CustomerID = 'ALFKI'") customerRow(0)("CompanyName") = "Updated Company Name" customerRow(0)("City") = "Seattle"
DataRow[] customerRow = dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'"); customerRow[0]["CompanyName"] = "Updated Company Name"; customerRow[0]["City"] = "Seattle";
Bearbeiten eines Datensatzes in einer DataTable, wenn der Index der zu bearbeitenden Zeile bekannt ist
So aktualisieren Sie vorhandene Datensätze in typisierten Datasets (Zeilenindex bekannt)
Weisen Sie der spezifischen Spalte innerhalb eines DataRow-Objekts einen Wert zu.
Typisierte Datasets verwenden die frühe Bindung, wodurch Tabellen- und Spaltennamen zur Entwurfszeit als Eigenschaften verfügbar gemacht werden. Dies führt dazu, dass der Code einfacher zu lesen und zu schreiben ist.
Im folgenden Beispiel wird veranschaulicht, wie die Daten in der CompanyName-Spalte und City-Spalte des fünften Datensatzes in der Customers-Tabelle im Dataset aktualisiert werden:
NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name" NorthwindDataSet1.Customers(4).City = "Seattle"
northwindDataSet1.Customers[4].CompanyName = "Updated Company Name"; northwindDataSet1.Customers[4].City = "Seattle";
So aktualisieren Sie vorhandene Datensätze in nicht typisierten Datasets (Zeilenindex bekannt)
Weisen Sie einer spezifischen Spalte innerhalb eines DataRow-Objekts einen Wert zu.
Da die Tabellen- und Spaltennamen nicht typisierter Datasets zur Entwurfszeit nicht verfügbar sind, muss der Zugriff über ihre jeweiligen Indizes erfolgen.
Das folgende Beispiel zeigt, wie die Daten in den ersten beiden Spalten des fünften Datensatzes der ersten Tabelle in Dataset1 aktualisiert werden. Dabei wird über die Indizes der Tabellen-, Zeilen- und Elementauflistung (Spaltenauflistung) auf die Datenwerte zugegriffen:
DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name" DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
dataSet1.Tables[0].Rows[4].ItemArray[0] = "Updated Company Name"; dataSet1.Tables[0].Rows[4].ItemArray[1] = "Seattle";
Im folgenden Beispiel werden dieselben Daten wie im vorherigen Beispiel aktualisiert. Dabei werden die Auflistungsindizes jedoch durch Tabellen- und Spaltennamen ersetzt, die als Zeichenfolgen übergeben werden. Sie müssen nach wie vor den Index der zu bearbeitenden Zeile kennen:
DataSet1.Tables("Customers").Rows(4).Item("CompanyName") = "Updated Company Name" DataSet1.Tables("Customers").Rows(4).Item("City") = "Seattle"
dataSet1.Tables["Customers"].Rows[4]["CompanyName"] = "Updated Company Name"; dataSet1.Tables["Customers"].Rows[4]["City"] = "Seattle";
Siehe auch
Konzepte
'Edit'-Methoden für eine 'DataTable'
Hinzufügen von Daten zu einer 'DataTable'
Übersicht über das Anzeigen von Daten
Weitere Ressourcen
Herstellen von Datenverbindungen in Visual Studio
Vorbereiten der Anwendung auf den Empfang von Daten
Abrufen von Daten für die Anwendung
Anzeigen von Daten in Formularen in Windows-Anwendungen