segunda-feira, 21 de maio de 2012

DataTable - Removendo linhas em branco

Fala, galera!!

Depois de mais um longo período de inatividade, segue mais um post relâmpago, mas de grande utilidade.
Me deparei hoje com a necessidade de remover todas as linhas em brano de um DataTable.

Esperava que existisse um método mais sugestivo para isso. Algo como "IgnoreEmptyRows" ou "RemoveEmptyRows". Mas seria fácil demais, né? :)

A solução até que é simples, mas não tão sugestiva.

Vamos ao código:


MeuDataTable = MeuDataTable.Rows.Cast<DataRow>().Where(row => !row.ItemArray.All(field => field is System.DBNull || string.Compare((field as string).Trim(), string.Empty) == 0)).CopyToDataTable();



Simples, não? Mas, certamente, não tão fácil de lembrar quanto um simples "RemoveEmptyRows" :)
Minha sugestão é criar o seu próprio RemoveEmptyRows:


public DataTable RemoveEmptyRows (DataTable MeuDataTable)
{
  MeuDataTable = MeuDataTable.Rows.Cast<DataRow>().Where(row => !row.ItemArray.All(field => field is System.DBNull || string.Compare((field as string).Trim(), string.Empty) == 0)).CopyToDataTable();

    return MeuDataTable ;
 }



Um abraço e até a próxima!!