Kopírování obsahu datové sady
Můžete vytvořit kopii, DataSet abyste mohli pracovat s daty, aniž by to mělo vliv na původní data, nebo pracovat s podmnožinou dat z datové sady. Při kopírování datové sady můžete:
Vytvořte přesnou kopii datové sady, včetně schématu, dat, informací o stavu řádku a verzí řádků.
Vytvořte datovou sadu , která obsahuje schéma existující datové sady, ale pouze řádky, které byly změněny. Můžete vrátit všechny řádky, které byly změněny, nebo zadat konkrétní DataRowState. Další informace o stavech řádků naleznete v tématu Stavy řádků a Verze řádků.
Zkopírujte schéma nebo relační strukturu pouze datové sady , aniž byste museli kopírovat žádné řádky. Řádky lze importovat do existujícího DataTable pomocí ImportRow.
Pokud chcete vytvořit přesnou kopii datové sady , která obsahuje schéma i data, použijte Copy metodu DataSet. Následující příklad kódu ukazuje, jak vytvořit přesnou kopii DataSet.
Dim copyDataSet As DataSet = customerDataSet.Copy()
DataSet copyDataSet = customerDataSet.Copy();
Chcete-li vytvořit kopii datové sady , která obsahuje schéma a pouze data představující přidané, změněné nebo odstraněné řádky, použijte GetChanges metodu DataSet. Funkci GetChanges můžete použít také k vrácení pouze řádků se zadaným stavem řádku předáním hodnoty DataRowState při volání GetChanges. Následující příklad kódu ukazuje, jak předat DataRowState při volání GetChanges.
' Copy all changes.
Dim changeDataSet As DataSet = customerDataSet.GetChanges()
' Copy only new rows.
Dim addedDataSetAs DataSet = _
customerDataSet.GetChanges(DataRowState.Added)
// Copy all changes.
DataSet changeDataSet = customerDataSet.GetChanges();
// Copy only new rows.
DataSet addedDataSet= customerDataSet.GetChanges(DataRowState.Added);
Chcete-li vytvořit kopii datové sady , která obsahuje pouze schéma, použijte Clone metodu DataSet. Do klonované datové sady můžete také přidat existující řádky pomocí metody ImportRow dataTable. ImportRow přidá do zadané tabulky data, stav řádku a informace o verzi řádku. Hodnoty sloupců se přidají pouze tam, kde se název sloupce shoduje a datový typ je kompatibilní.
Následující příklad kódu vytvoří klon datové sady a pak přidá řádky z původní datové sady do tabulky Customers ve klonu Datové sady pro zákazníky, kde sloupec CountryRegion má hodnotu "Německo".
Dim customerDataSet As New DataSet
customerDataSet.Tables.Add(New DataTable("Customers"))
customerDataSet.Tables("Customers").Columns.Add("Name", GetType(String))
customerDataSet.Tables("Customers").Columns.Add("CountryRegion", GetType(String))
customerDataSet.Tables("Customers").Rows.Add("Juan", "Spain")
customerDataSet.Tables("Customers").Rows.Add("Johann", "Germany")
customerDataSet.Tables("Customers").Rows.Add("John", "UK")
Dim germanyCustomers As DataSet = customerDataSet.Clone()
Dim copyRows() As DataRow = _
customerDataSet.Tables("Customers").Select("CountryRegion = 'Germany'")
Dim customerTable As DataTable = germanyCustomers.Tables("Customers")
Dim copyRow As DataRow
For Each copyRow In copyRows
customerTable.ImportRow(copyRow)
Next
DataSet customerDataSet = new DataSet();
customerDataSet.Tables.Add(new DataTable("Customers"));
customerDataSet.Tables["Customers"].Columns.Add("Name", typeof(string));
customerDataSet.Tables["Customers"].Columns.Add("CountryRegion", typeof(string));
customerDataSet.Tables["Customers"].Rows.Add("Juan", "Spain");
customerDataSet.Tables["Customers"].Rows.Add("Johann", "Germany");
customerDataSet.Tables["Customers"].Rows.Add("John", "UK");
DataSet germanyCustomers = customerDataSet.Clone();
DataRow[] copyRows =
customerDataSet.Tables["Customers"].Select("CountryRegion = 'Germany'");
DataTable customerTable = germanyCustomers.Tables["Customers"];
foreach (DataRow copyRow in copyRows)
customerTable.ImportRow(copyRow);