Como: Editar linhas em uma DataTable

Para poder editar uma linha existente em um DataTable, você precisa localizar o DataRow Você deseja editar e em seguida, atribuir os valores atualizados para as colunas desejadas.

Os exemplos a seguir mostram como localizar e modificar linhas em DataSets tipado, e sem-tipo.

Quando você não pendente saber o índice da linha que você deseja editar para editar um registro em uma DataTable

Normalmente, você não souber o índice da linha você deseja editar. Tabelas de dados em DataSets digitados são criados com um FindBy método que usa a chave primária da tabela para localizar uma linha.

Para atualizar registros existentes na digitado DataSets (índice de linha não conhecido)

  • Atribuir uma DataRow específico a uma variável usando o método FindBy gerado e use essa variável para acessar as colunas que você deseja editar e atribuir novos valores para eles.

    No exemplo a seguir, a CustomerID coluna é a chave primária da tabela Customers, portanto é FindByCustomerID o método gerado FindBy. Este exemplo pressupõe que você tenha gerado um dataset tipado chamado NorthwindDataSet, e se você tem uma instância deste DataSet tipado chamado northwindDataSet1.

    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";;
    

Normalmente, você não souber o índice da linha você deseja editar. Tabelas de dados em conjuntos de dados sem-tipo são criadas com um Select método que retorna uma matriz de DataRow s.

Para atualizar registros existentes na sem-tipo DataSets (índice de linha não conhecido)

  • Use o método Select de DataTable para localizar uma linha específica e atribuir novos valores para as colunas desejadas

    No exemplo a seguir, a CustomerID coluna é a chave primária da tabela Customers, para chamar o Select método e pesquisa para a chave primária apenas resultará em localizando uma linha. O tipo de retorno é ainda uma matriz de DataRow s, de forma que é acessar o (0) índice, ou pela primeira vez na matriz de linha. Este exemplo assume que você tiver um dataset chamado dataSet1.

    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";
    

Quando você saber o índice da linha que você deseja editar para editar um registro em uma DataTable

Para atualizar registros existentes usando digitado DataSets (índice de linha conhecido)

  • Atribua um valor para a coluna específica dentro de um DataRow objeto.

    DataSets digitado utilizam vinculação antecipada, que expõe os nomes de tabela e coluna como propriedades em tempo de criação. Isso resulta em código que é mais fácil de ser tanto leitura e gravação.

    O exemplo a seguir mostra como atualizar os dados de CompanyName e City colunas do registro no quinto a Customers tabela no dataset. Este exemplo pressupõe que você tenha gerado um dataset tipado chamado NorthwindDataSet, e se você tem uma instância deste DataSet tipado chamado northwindDataSet1.

    NorthwindDataSet1.Customers(4).CompanyName = "Updated Company Name"
    NorthwindDataSet1.Customers(4).City = "Seattle"
    
    northwindDataSet1.Customers[4].CompanyName = "Updated Company Name";
    northwindDataSet1.Customers[4].City = "Seattle";
    

Para atualizar registros existentes na sem-tipo DataSets (índice de linha conhecido)

  • Atribua um valor para a coluna específica dentro de um DataRow objeto.

    Os nomes de tabela e coluna de DataSets sem-tipo não estão disponíveis em tempo de criação e deve ser acessado através de seus índices respectivos.

    O exemplo a seguir mostra como atualizar os dados nas duas primeiras colunas do registro da primeira tabela no quinto dataSet1. Este exemplo assume que a primeira tabela no dataSet1 corresponde à Customers tabela de banco de dados Northwind e as duas primeiras colunas da tabela são o CompanyName e City colunas.

    DataSet1.Tables(0).Rows(4).Item(0) = "Updated Company Name"
    DataSet1.Tables(0).Rows(4).Item(1) = "Seattle"
    
    dataSet1.Tables[0].Rows[4][0] = "Updated Company Name";
    dataSet1.Tables[0].Rows[4][1] = "Seattle";
    

    O exemplo a seguir mostra como atualizar os mesmos dados que o exemplo anterior, substituindo os índices coleção por tabela e nomes de coluna passado como sequências. Você ainda precisará saber o índice da linha que você deseja editar.

    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";
    

Consulte também

Conceitos

DataTable Edits

Adding Data to a DataTable

DataRow Deletion

Vinculação de controles do Windows Forms a dados em Visual Studio

Controles de vinculação de dados de Visual Studio

Outros recursos

Conectando-se a Dados no Visual Studio

Preparando seu aplicativo para receber dados

Buscando dados em seu aplicativo

Editar dados no seu aplicativo

Validando Dados

Salvando dados

Histórico de alterações

Date

History

Motivo

Setembro de 2010

Alterado em um dos exemplos de código C# para usar ItemsArray em vez de Items.

Correção de bug de conteúdo.