DAPPER - CLASSE

 Tópico anterior Próximo tópico Novo tópico

DAPPER - CLASSE

C#

 Compartilhe  Compartilhe  Compartilhe
#495284 - 05/10/2020 14:15:46

MICROSOFTP
PORTO FELIZ
Cadast. em:Outubro/2019


Boa tarde pessoal!
Estou começando a usar dapper.

Eu tenho uma classe, chama banco
idBanco = int
codBanco = varchar(3)
descricaoBanco= varchar(20)

Ok, eu busco no dapper e preencho a classe, convertendo em um datatable.

Só que na hora que eu coloco no gridview, ele aparece 'Idbanco - codBanco - descricaoBanco'.
minhas duas duvidas, são:

1 - Como eu altero a ordem?
Exemplo:
'codBanco - descricaoBanco - Idbanco'

2 - Como altero os nomes da colunas?
Exemplo:
'cod. Banco - Descrição Banco - id'

Existe alguma coisa na classe que faça entender esses dois conjuntos?









#495285 - 05/10/2020 15:10:04

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
1 - Pra que transformar em um DataTable????
2 - Você pode usar a o método select. Mais ou menos assim:

using (var cn = new SqlConnection('Sua_string_de_conexao_aqui'))
{
    List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos');
    seuDataGrid.DataSource  = bancos;    
}


Se ainda assim não estiver na ordem que quer, então coloque as colunas manualmente:

DataGridTextColumn c1 = new DataGridTextColumn();
c1.Header = 'Código Banco';
c1.Binding = new Binding('codBanco');
c1.Width = 110;
seuDataGrid.Columns.Add(c1);

O mesmo procedimento para as demais colunas. Se quiser usar tipos diferenciados de colunas, veja os tipos aqui

_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495288 - 05/10/2020 15:35:47

MICROSOFTP
PORTO FELIZ
Cadast. em:Outubro/2019


Citação:
:
1 - Pra que transformar em um DataTable????
2 - Você pode usar a o método select. Mais ou menos assim:

using (var cn = new SqlConnection('Sua_string_de_conexao_aqui'))
{
    List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos');
    seuDataGrid.DataSource  = bancos;    
}


Se ainda assim não estiver na ordem que quer, então coloque as colunas manualmente:

DataGridTextColumn c1 = new DataGridTextColumn();
c1.Header = 'Código Banco';
c1.Binding = new Binding('codBanco');
c1.Width = 110;
seuDataGrid.Columns.Add(c1);

O mesmo procedimento para as demais colunas. Se quiser usar tipos diferenciados de colunas, veja os tipos aqui


Então, nós temos um gridView ja todo costumizado, aonde passamos o datatable, e ele ja tem tudo pronto.
Por isso, eu estava tentando fazer as modificações antes de chegar no Grid, entende?

Então eu tentei modificar  de acordo com o sql, mas, ele segue a forma da classe, exemplo:


        public int idBanco { get; set; }
        public string codigoBanco { get; set; }
        public string descricaoBanco { get; set; }
  


Ele sempre vai preencher nessa ordem, independendo do SQL montado.
Se eu mudar a ordem da classe, ai funciona... mas, obviamente não tem como ser assim.

Eu não consegui mudar, também os nomes dos campos, direto.. nem mapeando.
No Entity tem o Colum name... mas, no dapper, parece ser bem mais complexo.



#495290 - 05/10/2020 16:40:14

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Faltou no exemplo, mas ficaria assim:

List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos')
.Select(x => x.codBanco, x.descricaoBanco, x.idBanco);



_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495294 - 05/10/2020 16:58:14

MICROSOFTP
PORTO FELIZ
Cadast. em:Outubro/2019


Citação:
:
Faltou no exemplo, mas ficaria assim:

List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos')
.Select(x => x.codBanco, x.descricaoBanco, x.idBanco);


Bacana, isso resolve a ordenação.

Só vou ver como fazer para alterar o nome da coluna.



Resposta escolhida #495296 - 05/10/2020 18:12:46

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Então use alias:

List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos')
.Select(x => new { Codigo = x.codBanco, Descricao = x.descricaoBanco, Id = x.idBanco});


_______________________________________________________________________
Virei Orculo!
The end is nigh, be ready for the nukes!


#495299 - 06/10/2020 08:39:28

MICROSOFTP
PORTO FELIZ
Cadast. em:Outubro/2019


Citação:
:
Então use alias:

List<Banco> bancos = conexaoBD .Query<Banco>('Select codBanco, descricaoBanco, idBanco from Bancos')
.Select(x => new { Codigo = x.codBanco, Descricao = x.descricaoBanco, Id = x.idBanco});

Resolve boa parte do problema, a outra consegui me virar.
Valeu pela ajuda!



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MICROSOFTP em 06/10/2020 08:39:40