Criando um datatable customizado herdando a classe System.Data.DataTable

Nesse artigo vou demonstrar para vocês como é simples criar uma classe herdando de outra.

Criando um datatable customizado herdando a classe System.Data.DataTable

 

Ola pessoal,

 

Nesse artigo vou demonstrar para vocês como é simples criar uma classe herdando de outra.

 

Utilizaremos dois conceitos de orientação a objetos.

1 - Herança

2 - Sobrecarga

 

A idéia e criar um método PegaValor(string nome), para evitarmos de utilizar índices quando queremos retornar somente um registro de um DataTable.


Criando a classe DataTableLC

 

using System;

using System.Collections.Generic;

using System.Text;

using System.Data;

namespace br.com.devmedia.DataTableLC

{

public class DatatableLC : DataTable /*herdamos a classe DataTable*/

{

public string PegaValor(string nomecampo)

{

return this.Rows[0][nomecampo].ToString();

}

public string PegaValor(int indice, string nomecampo)/*Sobrecarregamos o PegaValor*/

{

return this.Rows[indice][nomecampo].ToString();

}

}

}

 

Observe que criamos o método PegaValor(string nome) recebendo como parâmetro o nome do campo, e outro método PegaValor(int indice, string nome).

 

No DataTable normal para pegarmos o campo que desejamos, podemos fazer da seguinte maneira:

 

DataTable dt = new DataTable();

 

Supunhamos que eu tenha um metodo que me retorne um DataTable com os dados do cliente que o codigo e igual a 966.

 

dt = br.devmedia.ClienteDAO.getCliente(966);

 

Pegamos o nome do cliente retornado

 

Forma 1

 LblNome.text = dt.Rows[0]["NomeCliente"].ToString();

 

Forma 2

 LblNome.text = dt.Rows[0][0].ToString();

 

*Estou mostrando as 2 formas mais utilizadas.

 

Utilizando a classe DataTableLC que criamos podemos fazer da seguinte forma:

DataTable dt = new DataTable();

 

dt =(DatatableLC)br.devmedia.ClienteDAO.getCliente(966);

 

Como o nossa classe que retorna os dados do cliente retorna um Datatable fazemos o cast para o DataTableLC.

 

Pegamos o nome do cliente passando o nome do campo.

 

LblNome.text = dt.PegaValor("NomeCliente").ToString();

LblNome.text = dt.PegaValor(0," NomeCliente ").ToString();

 

Nesse exemplo vimos que podemos herdar uma classe e programar novos métodos para agilizar o nosso trabalho.

 

Bem pessoal, por hoje ficaremos aqui.

 

Espero que tenham gostado.

 

Um grande abraço.

Artigos relacionados