Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Você pode criar uma cópia de um DataSet para que possa trabalhar com dados sem afetar os dados originais ou trabalhar com um subconjunto dos dados de um DataSet. Ao copiar um DataSet, você pode:
Crie uma cópia exata do DataSet, incluindo o esquema, dados, informações de estado da linha e versões de linha.
Crie um
DataSetque contenha o esquema de um DataSet existente, mas apenas as linhas que foram modificadas. Você pode retornar todas as linhas que foram modificadas ou especificar um DataRowState específico. Para obter mais informações sobre estados de linha, consulte Estados de linha e versões de linha.Copie apenas o esquema, ou estrutura relacional, do
DataSet, sem copiar linhas. As linhas podem ser importadas para um DataTable já existente usando o ImportRow.
Para criar uma cópia exata do DataSet que inclua tanto o esquema como os dados, use o Copy método do DataSet. O exemplo de código a seguir mostra como criar uma cópia exata do DataSet.
Dim copyDataSet As DataSet = customerDataSet.Copy()
DataSet copyDataSet = customerDataSet.Copy();
Para criar uma cópia de um DataSet que inclua o esquema e apenas os dados que representam Adicionado, Modificado ou Deleted linhas, use o GetChanges método do DataSet. Também podes usar GetChanges para devolver apenas linhas com um estado de linha especificado, passando um DataRowState valor ao chamar o GetChanges. O seguinte exemplo de código mostra como passar a DataRowState ao chamar o 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);
Para criar uma cópia de um DataSet que apenas inclua o esquema, use o Clone método do DataSet. Também pode adicionar linhas existentes ao clonado DataSet usando o ImportRow método da DataTable.
ImportRow adiciona dados, estado das linhas e informação de versão da linha à tabela especificada. Os valores de coluna são adicionados somente quando o nome da coluna corresponde e o tipo de dados é compatível.
O exemplo de código seguinte cria um clone do DataSet e depois adiciona as linhas do original DataSet à tabela Customers no clone DataSet para clientes em que a coluna CountryRegion tem o valor "Alemanha".
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);