Como editar linhas em um 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 a 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 desta 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 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

Edições de DataTable

Adicionando dados a um DataTable

Exclusão de DataRow

Associando controles dos Windows Forms a dados no Visual Studio

Preparando o aplicativo para receber dados

Buscando dados no aplicativo

Associando controles a dados no Visual Studio

Editando dados no aplicativo

Validando dados

Salvando dados

Outros recursos

Conectando a dados no Visual Studio