.Net developer

Copiando Dataset to Hashtable

COMO CHAMAR O MÉTODO:
=========================================================
Hashtable tb = CopiarDatasetToHashTable( SEUDATASET );
ou

Hashtable tb = CopiarDatasetToHashTable( SEUDATASET,
INDICE_COLUNA_VALOR, INDICE_COLUNA_TEXTO, TIPO_DADO_VALOR );
onde...
INDICE_COLUNA_VALOR : Número da coluna de value do dataset,
começando com zero.
INDICE_COLUNA_TEXTO: idem acima, mas para o texto.
TIPO_DADO_VALOR : se a coluna de valor for INT, então 1, caso
contrário, 2.


ex:

//método Metodo() retorna um dataset com 2 colunas, sendo a coluna de
indice 0 o valor, (ID da tabela), e a coluna de indice 1 a coluna de
texto . E o valor é do tipo integer
HashTable ht = CopiarDatasetToHashTable( meuobjeto.Metodo() , 0, 1, 1);




MÉTODOS:
=========================================================


public Hashtable CopiarDatasetToHashTable(DataSet ds, int
coluna_valor, int coluna_texto, int tipo_dado_valor)
{
Hashtable table = new Hashtable();

if (ds.Tables[0].Rows.Count > 0)
{
string texto;
string valor_texto;
int valor_inteiro;
switch (tipo_dado_valor)
{
//Caso tipo de dado do VALOR seja inteiro
case 1:
foreach (DataRow row in ds.Tables[0].Rows)
{
valor_inteiro = Convert.ToInt32(row[coluna_valor]);
texto = row[coluna_texto].ToString();
table.Add(texto, valor_inteiro);
}
break;
//Caso tipo de dado do VALOR e do TEXTO sejam strings
case 2:
foreach (DataRow row in ds.Tables[0].Rows)
{
valor_texto = row[coluna_valor].ToString();
texto = row[coluna_texto].ToString();
table.Add(texto, valor_texto);
}
break;
}

}
return table;
}

public Hashtable CopiarDatasetToHashTable(DataSet ds)
{
return this.CopiarDatasetToHashTable(ds, 0, 1, 1);
}

0 comentários: