DataSet-, DataTable- und DataRow-Kopiermethoden

巴扎黑
Freigeben: 2016-12-20 09:30:17
Original
1211 Leute haben es durchsucht

Das DataSet-Objekt ist das Kernobjekt, das die getrennte und verteilte Datenlösung von ADO.NET unterstützt. Es hat eine breite Palette von Verwendungsmöglichkeiten, z. B. zum Abrufen von Daten aus einer DataTable oder zum Kopieren von Daten Eine andere DataTabe. Oder die Daten von DataRow, aber nur das Kopieren von DataSet und DataTable unterstützt das tiefe Kopieren, was bedeutet, dass nicht nur die Struktur des Elements, sondern auch die Daten des Elements kopiert werden können Keine entsprechende Kopiermethode. Diese werden im Folgenden kurz vorgestellt.
DataTable sourceTable;
DatatDataRow objectRow;
DataSet sourceDataSet = new DataSet(); object = souceDataSet.Copy();//Deep copy
DataSet object = souceDataSet.Clone();//Flache Kopie, nur das Schema kopieren
Copy DataTable
objectTable = sourceTable .Copy();/ / Deep copy
objectTable = sourceTable .Clone();//Flache Kopie, kopiert nur das Schema
Copy DataRow
Dieser Fehler tritt häufig bei der Projektentwicklung auf – „Diese Zeile gehört bereits zu einer anderen Tabelle“. Die Anweisung, die diesen Fehler verursacht hat, lautet wie folgt:
objectTable .Rows.Add(SourceDataRow);
Ich habe den Grund analysiert, da DataRow DataTable per Referenz aufgerufen wird. Sobald sich also eine Zeile in einer Tabelle befindet, kann sie nicht zu einer anderen Tabelle hinzugefügt werden.
Spezifische Methoden:
1 ImportRow-Methode: public void ImportRow( DataRow DataRow);
objectTable = sourceTable.clone();//Das Schema der Tabelle muss zuerst kopiert werden, um die gleichen Spalten oder Beziehungen zu haben !
foreach (DataRow oRow in sourceTable)
{
objectTable.ImportRow(oRow);//Fügen Sie eine neue Zeile in objectTable hinzu und kopieren Sie den Wert von sourceRow hinein. Die Struktur der Tabelle muss dieselbe sein !
}
____________________________________________________________________________________________
2. Durchlaufen Sie jede Spalte von DataTable
DataRow aDataRow = objectTable.NewRow();
foreach(DataColumn aDataColumn in sourceTable.Columns)
{
aDataRow [aDataColumn.ColumnName] = sourceTable[i][aDataColumn.ColumnName];
}
objectTable.Rows.Add(aDataRow);
3. Benutzerdefinierte Kopie
objectTable.Columns.Add ( " id");//Sie müssen nicht die gleiche Struktur haben, kopieren Sie einfach die benötigten Spalten!
Object [] myArry = new Object [1];
foreach (DataRow oRow in sourceTable)
{
tempRow = objectTable.NewRow();//Diese Methode muss aufgerufen werden!
myArry[0] = oRow["id"];//Wenn in der Quelltabelle in myArry keine ID-Spalte vorhanden ist , es wird ein Fehler gemeldet!
tempRow.ItemArray = myArry; // Die ItemArray-Eigenschaft ist ein Objekttyp-Array, und Sie können die Daten mehrerer Spalten entsprechend den Anforderungen des Programms kopieren! /Diese Methode muss aufgerufen werden, sonst werden die Daten in DataRow nicht angezeigt! [] newRow = new Object[ 3];
// Wert des Objektarrays festlegen
newRow[0] = "Hallo"
newRow[1] = "World"; [2] = "two";
DataRow myRow;
ObjectTable.BeginLoadData();
// Füge eine neue Zeile zur Tabelle hinzu
myRow = ObjectTable.LoadDataRow(newRow, true);/ /Das Flag sollte auf „true“ gesetzt sein, was das Hinzufügen einer neuen Zeile anzeigt.
ObjectTable.EndLoadData(); Diese Methode ist komplizierter, wenn Sie einfach die Daten einer vorhandenen Zeile kopieren, um eine neue Zeile hinzuzufügen. Es wird nicht empfohlen, es zu verwenden. Informationen zur spezifischen Verwendung finden Sie in der SDK-Dokumentation.

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!