Adicionando dados a um DataTable

Depois de criar DataTable e definir sua estrutura usando colunas e restrições, você pode adicionar novas linhas de dados à tabela. Para adicionar uma nova linha, declare uma nova variável como tipo DataRow. Um novo objeto DataRow é retornado quando você chama o método NewRow. Em seguida, o DataTable cria o objeto DataRow baseado na estrutura da tabela, conforme definido por DataColumnCollection.

O exemplo a seguir demonstra como criar uma nova linha chamando o método NewRow.

Dim workRow As DataRow = workTable.NewRow()  
DataRow workRow = workTable.NewRow();  

Você pode manipular a linha recém-adicionada usando um índice ou o nome da coluna, conforme mostrado no exemplo a seguir.

workRow("CustLName") = "Smith"  
workRow(1) = "Smith"  
workRow["CustLName"] = "Smith";  
workRow[1] = "Smith";  

Depois que os dados são inseridos na nova linha, o método Add é usado para adicionar a linha a DataRowCollection, conforme mostrado no código a seguir.

workTable.Rows.Add(workRow)  
workTable.Rows.Add(workRow);  

Você também pode chamar o método Add para adicionar uma nova linha passando uma matriz de valores, tipada como Object, conforme mostrado no exemplo a seguir.

workTable.Rows.Add(new Object() {1, "Smith"})  
workTable.Rows.Add(new Object[] {1, "Smith"});  

Passar uma matriz de valores, tipada como Objeto, para o método Add cria uma nova linha na tabela e define seus valores de coluna como os valores na matriz de objetos. Observe que os valores na matriz são correspondidos sequencialmente a colunas, com base na ordem na qual aparecem na tabela.

O exemplo a seguir adiciona 10 linhas à tabela Clientes recém-criada.

Dim workRow As DataRow  
Dim i As Integer  
  
For i = 0 To 9  
  workRow = workTable.NewRow()  
  workRow(0) = i  
  workRow(1) = "CustName" & I.ToString()  
  workTable.Rows.Add(workRow)  
Next  
DataRow workRow;  
  
for (int i = 0; i <= 9; i++)
{  
  workRow = workTable.NewRow();  
  workRow[0] = i;  
  workRow[1] = "CustName" + i.ToString();  
  workTable.Rows.Add(workRow);  
}  

Confira também