sexta-feira, 7 de maio de 2010

Percorrendo uma tabela e utilizando um Array para deletar linhas

Esta necessidade ocorreu devido a ter precisado excluir duas ou mais linhas de uma tabela apresentadas em um dataGridView onde as linhas que serão excluidas tinham registros dependentes uns dos outros.

//Identificação das linhas a serem deletadas
linha_index = dataGridView1.CurrentRow.Cells[2].Value.ToString();

//Declarei um array para receber o index da linha
int[] linhas = new int[100];

//Este laço irá percorrer um DataTable para verificar e identificar as linhas a serem excluidas e armazenar no array seus indices.
for (int i = 0; i < DT.Rows.Count; i++)
{
if (DT.Rows[i][2].ToString() == linha_index)
{
linhas[i] = 1;
}
}

//Este segundo laço deleta as linhas dependentes só que de trás para frente, evitando o erro de se excluir a primeira linha, alterando o indice das demais a serem excluidas, dando diferença do array e consequentemente um erro.

int contador = 100;
for (int i = 0; i < linhas.Length; i++)
{
contador--;
int numero = linhas[contador];

if (numero > 0)
{
DT.Rows[contador].Delete();
}
}

Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.