Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original

Classe DataSet

Representa um cache de memória dos dados.

Namespace:  System.Data
Assembly:  System.Data (em System.Data.dll)

[SerializableAttribute]
public class DataSet : MarshalByValueComponent, IListSource, 
	IXmlSerializable, ISupportInitializeNotification, ISupportInitialize, ISerializable

O DataSet é um cache de memória dos dados recuperados de uma fonte de dados, é um componente principal da arquitetura ADO.NET. The DataSet consiste em uma coleção de DataTable objetos que você pode se relacionar a Outros com DataRelation objetos. Você também pode impor a integridade dos dados no DataSet usando o UniqueConstraint e ForeignKeyConstraint objetos. Para obter mais detalhes sobre como trabalhar com DataSet objetos, consulte Usando DataSets no ADO.NET .

Enquanto DataTable objetos contêm os dados, o DataRelationCollection permite que você navegar pelas Hierarquia em Tabela. As tabelas estão contidas em um DataTableCollection acessado por meio do Tables propriedade. Ao acessar objetos DataTable, note que eles são condicionalmente diferenciados entre maiúsculas e minúsculas. Por exemplo, se um DataTable é denominado "mydatatable" e outro chamado "Mydatatable", uma seqüência de caracteres é usada para pesquisar uma das tabelas é considerada como diferenciação de maiúsculas e minúsculas. No entanto, se "mydatatable" existe e "Mydatatable" não, a seqüência de pesquisa é considerada sem distinção entre maiúsculas e minúsculas. Para obter mais informações sobre como trabalhar com objetos DataTable, consulte Creating a DataTable (ADO.NET).

A DataSet pode ler e gravar dados e o esquema sistema autônomo documentos XML. Os dados e o esquema podem ser transportados HTTP e usadas por qualquer aplicativo em qualquer plataforma que é habilitado para XML.Você pode salvar o esquema sistema autônomo um esquema XML com o WriteXmlSchema método e esquema e dados podem ser salvas usando a WriteXml método. Para ler um documento XML que inclui o esquema e dados, use o ReadXml método.

Em uma implementação típica de várias camadas, as etapas para criar e atualizar um DataSet, e por sua vez, atualizando os dados originais são para:

  1. Criar e preencher cada DataTable em um DataSet com os dados de uma fonte de dados usando um DataAdapter.

  2. Alterar os dados em individuais DataTable objetos, adicionar, atualizar ou excluindo DataRow objetos.

  3. Invocar o GetChanges método para criar um segundo DataSet que apresenta somente as alterações nos dados.

  4. Chamar o método Update para o DataAdapter, passando o segundo DataSet como um argumento.

  5. Invocar o Merge método mesclagem as alterações da segunda DataSet o primeiro.

  6. Invocar o AcceptChanges sobre o DataSet. Como alternativa, invocar RejectChanges Para cancelar as alterações.

ObservaçãoObservação:

O DataSet e DataTable objetos herdam MarshalByValueComponente dar suporte a ISerializable interface para comunicação remota. Esses são os objetos ADO.NET únicos que podem ser remotos.

ObservaçãoObservação:

Classes herdadas da DataSet não são finalizadas pelo coletor de lixo, pois o finalizador tiver sido suprimido no DataSet. A classe derivada pode chamar o ReRegisterForFinalize método no seu construtor para permitir que a classe a ser finalizado pelo coletor de lixo.

O exemplo a seguir consiste em vários métodos que, combinada, criar e preencher um DataSet do Northwind o banco de dados.

using System;
using System.Data;
using System.Data.SqlClient;

namespace Microsoft.AdoNet.DataSetDemo
{
    class NorthwindDataSet
    {
        staticvoid Main()
        {
            string connectionString = GetConnectionString();
            ConnectToData(connectionString);
        }

        privatestaticvoid ConnectToData(string connectionString)
        {
            //Create a SqlConnection to the Northwind database.using (SqlConnection connection =
                       new SqlConnection(connectionString))
            {
                //Create a SqlDataAdapter for the Suppliers table.
                SqlDataAdapter adapter = new SqlDataAdapter();

                // A table mapping names the DataTable.
                adapter.TableMappings.Add("Table", "Suppliers");

                // Open the connection.
                connection.Open();
                Console.WriteLine("The SqlConnection is open.");

                // Create a SqlCommand to retrieve Suppliers data.
                SqlCommand command = new SqlCommand(
                    "SELECT SupplierID, CompanyName FROM dbo.Suppliers;",
                    connection);
                command.CommandType = CommandType.Text;

                // Set the SqlDataAdapter's SelectCommand.
                adapter.SelectCommand = command;

                // Fill the DataSet.
                DataSet dataSet = new DataSet("Suppliers");
                adapter.Fill(dataSet);

                // Create a second Adapter and Command to get// the Products table, a child table of Suppliers. 
                SqlDataAdapter productsAdapter = new SqlDataAdapter();
                productsAdapter.TableMappings.Add("Table", "Products");

                SqlCommand productsCommand = new SqlCommand(
                    "SELECT ProductID, SupplierID FROM dbo.Products;",
                    connection);
                productsAdapter.SelectCommand = productsCommand;

                // Fill the DataSet.
                productsAdapter.Fill(dataSet);

                // Close the connection.
                connection.Close();
                Console.WriteLine("The SqlConnection is closed.");

                // Create a DataRelation to link the two tables// based on the SupplierID.
                DataColumn parentColumn =
                    dataSet.Tables["Suppliers"].Columns["SupplierID"];
                DataColumn childColumn =
                    dataSet.Tables["Products"].Columns["SupplierID"];
                DataRelation relation =
                    new System.Data.DataRelation("SuppliersProducts",
                    parentColumn, childColumn);
                dataSet.Relations.Add(relation);
                Console.WriteLine(
                    "The {0} DataRelation has been created.",
                    relation.RelationName);
            }
        }

        staticprivate string GetConnectionString()
        {
            // To avoid storing the connection string in your code, // you can retrieve it from a configuration file.return"Data Source=(local);Initial Catalog=Northwind;"
                + "Integrated Security=SSPI";
        }
    }
}


Esse tipo é seguro para as operações de leitura multithread. Você deve sincronizar as operações de gravação.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatível com: 3.5, 2.0, 1.0

XNA Framework

Compatível com: , 1.0

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft