.Net developer
Mostrando postagens com marcador dataset. Mostrar todas as postagens
Mostrando postagens com marcador dataset. Mostrar todas as postagens

Stored Procedures com SubSonic

Como chamar uma Stored Procedure e obter seus dados num DataTable


StoredProcedure sp = DAL.SPs.Cliente_Listar(3);
DataTable dt = sp.GetDataSet().Tables[0];

string nome;
foreach (DataRow row in dt.Rows)
{
nome = row[1].ToString();
}

Para executar uma procedure só de atualização ou insert, bastava dar um sp.Execute() ao invés do GetDataSet().

No código, ao digitar o DAL.SPs. (logo depois do ponto) são listadas pelo Visual Studio todas as procedures da base!.

Para rodar este código, necessário o using SubSonic.

Como ter Subsonic? Se vira: http://www.subsonicproject.com/ ou dá uma googleada!

Como ordenar registros de um Dataset

Como dar um order by num dataset

DataSet ds = objeto.MetodoQueRetornaUmDataset()
DataView dv = ds.Tables[0].DefaultView;
dv.Sort = "NOME_CAMPO_PARA_ORDENAR ASC";
ds.Tables.Clear();
ds.Tables.Add(dv.ToTable());

Ordenando registros de dataset ou datatable

DataView dv = tabela.DefaultView;
dv.Sort = "NOME_CAMPO ASC";
tabela = dv.ToTable();
ds.Tables.Add(tabela);
return ds;

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);
}