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.