COMO FAO PARA PREENCHER O DATAGRID EM CAMADAS?

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

COMO FAO PARA PREENCHER O DATAGRID EM CAMADAS?

C#

 Compartilhe  Compartilhe  Compartilhe
#489758 - 01/08/2019 17:22:56

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017



Fala amigos, estou precisando muito da ajuda de vocs. Eu juro que no estou com preguia, e nem quero
que faam o trabalho por mim, mas que to a dias nisso me salvem!

Tenho um projeto de 3 camadas, e gostaria saber como que se faz para preencher um DatagridView. Eu j sei  fazer
com DataTable, DataRead porem meu problema o seguinte:

Eu tenho colunas no datagrid j predefinidas, ento no quero usar o DataSource. Usando o DataRead at consigo manipular isso, porem
a conexo fecha antes de apresentar os dados no grid, pois o DataRead trabalha conectado. No meu caso, eu fecho a conexo no
final da leitura e por conta disso, tenho problemas.

Estou tentando usar uma lista genrica para isso List<T>, porem no to conseguindo entender isso muito bem. claro, se
existe alguma alternativa melhor, me falem!


Camada BLL:

public List<string> ListProdutos;

public void ListarDados()
        {
            var produtoRepository = new ProdutoDAL();
            ListProdutos = produtoRepository.ListarDados();
        }



Camada DAL:

public List<string> ListarDados()
        {
            var db = new DataBase();

            var sql = @[]SELECT * From Produtos[];

            return  db.ListarDados(sql);
        }



Classe conexo:

public List<string> ListarDados(string sql)
        {
            try
            {
                comando.Connection = Connection();
                comando.CommandText = sql;

                var reader = comando.ExecuteReader();

                var list = new List<string>();

                while (reader.Read())
                {
                    list.Add(reader.GetValue(0).ToString());
                }

                Close();

                return list;

            }
            catch (Exception)
            {
                throw;
            }
        }



Citação:
O caminho por ai, acredito eu que sim rs!


Percebi que usar listas genricas seria bacana, porque no preciso importa o oledb para todas as camadas.




Resposta escolhida #489760 - 01/08/2019 17:59:32

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


Membro da equipe
O seu List<T> deveria ser um List<Produto> e nos mtodos da classe DAL e BLL retornar isso. Tenho vrios vdeos mostrando isso no meu canal. Assista a srie do C# explicadinho []basico[] e j vai ter uma idia.

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


#489761 - 01/08/2019 18:44:45

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017


Citação:
:
O seu List<T> deveria ser um List<Produto> e nos mtodos da classe DAL e BLL retornar isso. Tenho vrios vdeos mostrando isso no meu canal. Assista a srie do C# explicadinho []basico[] e j vai ter uma idia.


Vlw mano, eu j era inscrito no canal haha!

Irei olhar sim com certeza, e retorno para dizer se conseguir!



#489770 - 02/08/2019 23:56:59

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017


Última edição em 03/08/2019 00:03:14 por WELISSON

Citação:
:
O seu List<T> deveria ser um List<Produto> e nos mtodos da classe DAL e BLL retornar isso. Tenho vrios vdeos mostrando isso no meu canal. Assista a srie do C# explicadinho []basico[] e j vai ter uma idia.


Amigo conseguir, e ainda adaptei para preencher em colunas j predefinidas. S me fala
se esse isso mesmo:


UI
-----------------

          
try
            {
                var produto = new ProdutoBLL();

                produto.ListarProdutos();

                for (int i = 0; i < produto.ListaDeProdutos.Count; i++)
                    DtgProdutos.Rows.Add(produto.ListaDeProdutos[i].Referencia, produto.ListaDeProdutos[i].Tamanho,
                    produto.ListaDeProdutos[i].CodigoEstampa, produto.ListaDeProdutos[i].DescricaoProduto,
                    produto.ListaDeProdutos[i].PrecoCusto, produto.ListaDeProdutos[i].PrecoVenda,
                    produto.ListaDeProdutos[i].CodigoBarras, produto.ListaDeProdutos[i].FotoProdutoID);


            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


CAMADA BLL
------------------------

public List<ProdutoBLL> ListaDeProdutos = new List<ProdutoBLL>();

public void ListarProdutos()
        {
            var produtoRepository = new ProdutoDAL();
            ListaDeProdutos = produtoRepository.ListarProdutos();

        }



CAMADA DAL
-----------------------

public List<ProdutoBLL> ListarProdutos()
        {

            var sql = @[]SELECT Referencia,Tamanho,CodigoEstampa,DescricaoProduto,
                      PrecoCusto,PrecoVenda,CodigoBarras,FotoProdutoID From Produtos;

            var listaDeProdutos = new List<ProdutoBLL>();

            using (DataBase db = new DataBase())
            {
                db.ExecuteQuery(sql);

                while (db.reader.Read())
                {
                    ProdutoBLL produto = new ProdutoBLL
                    {
                        Referencia = (db.reader[[]Referencia[]].ToString()),
                        Tamanho = (db.reader[[]Tamanho[]].ToString()),
                        CodigoEstampa = (db.reader[[]CodigoEstampa[]].ToString()),
                        DescricaoProduto = (db.reader[[]DescricaoProduto[]].ToString()),
                        PrecoCusto = Convert.ToDouble(db.reader[[]PrecoCusto[]]),
                        PrecoVenda = Convert.ToDouble(db.reader[[]PrecoVenda[]]),
                        CodigoBarras = (db.reader[[]CodigoBarras[]].ToString()),
                        FotoProdutoID = (db.reader[[]FotoProdutoID[]].ToString())
                    };

                    listaDeProdutos.Add(produto);

                }

                return listaDeProdutos;
            }

        }

    }


Aqui deu super certo, pois agora posso criar minhas prprias colunas!





#489772 - 03/08/2019 10:39:43

CLEVERTON
SERRINHA
Cadast. em:Dezembro/2003


Membro da equipe
No seria mais simples vc passar somente o DataSource ?

datagrid.Datasource = seuListT;



#489780 - 03/08/2019 19:43:37

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


Membro da equipe
Se ficou feliz com isso, imagine como vai ficar quando usar Entity Framework e OData...

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


#489787 - 04/08/2019 15:55:15

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017


Citação:
:
No seria mais simples vc passar somente o DataSource ?

datagrid.Datasource = seuListT;


Dessa forma simples, porem no meu caso no serve por isso optei dessa forma!

Mas obrigado amigo!



#489788 - 04/08/2019 15:57:39

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017


Citação:
:
Se ficou feliz com isso, imagine como vai ficar quando usar Entity Framework e OData...


Meu caro, tenho escultado muito sobre isso. Ainda no busquei saber o que a fundo, eu at tentei dar uma olhada
mas parece que no funciona com access. Eu at poderia fazer meu app em outro banco como ja tenho, porem
esse bsico, mas se tiver alguns links para mim estudar manda ai!





#489796 - 05/08/2019 13:07:23

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


Membro da equipe
Tem muitos, muitos mesmo pra estudar. Mas a maioria vai comear com uma boa parte de teoria, o que vai facilitar muito a prtica. No algo to []mo na massa[] como fao nos vdeos, apesar que tambm tenho coisas l bem defasadas sobre OData e Entity Framework.

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


#489853 - 08/08/2019 11:40:18

WELISSON
CACHOEIRO DE ITAPEMIRIM
Cadast. em:Junho/2017


Citação:
:
Tem muitos, muitos mesmo pra estudar. Mas a maioria vai comear com uma boa parte de teoria, o que vai facilitar muito a prtica. No algo to []mo na massa[] como fao nos vdeos, apesar que tambm tenho coisas l bem defasadas sobre OData e Entity Framework.


Vou buscar saber mais, obrigado amigo!



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


Tópico encerrado, respostas não sao permitidas
Encerrado por WELISSON em 08/08/2019 11:40:29