none
Como pegar os dados de um GridView e salvar no SQLServer RRS feed

  • Pergunta

  •    Ola galera alguém pode ajudar.

      Eu tenho uma loja virtual desenvolvida com EntityFramework 4.0 e o problema e na hora de salvar as vendas. Tudo que o cliente comprar fica listado em um gridView (produto(nome), quantidade, valor_unitario e valor total) e criei um medoto para salvar as vendas:

    public VENDA CadastrarVendas(VENDA venda)

    {

         Add(venda);

    SaveChanges();

    return venda;

    }

        Bem e onde eu estou tentando chamar esse metodo e realizar o cadastro no banco, as informações estao no GridView eu tentei pegar as informações assim:

    obs: antes do codigo tem todo o metodo de pagamento que esta tudo ok. E estou tentando salvar a venda assim que ele clicar no botao pagar por isso esta no evento click.

      protec void btnPagar_Click (objetc sender, ImageClickEventArgs e)

     {

    //aqui tem todo o codigo do pagSeguro funcionando ok.

           //e abaixo quero realizar o cadastro das vendas no banco e esta assim olhem:

       foreach (GreidViewRow row in grvCarrinho.Rows)

       {

    string col1 = row.Cells[0].Text.Trim();

    string col2 = row.Cells[1].Text.Trim();

            string col3 = row.Cells[2].Text.Trim();  // e assim por diante com os outros dados

           vendaBll.CadastrarVendas(venda);  // aqui e onde ele insere os dados no banco mas nao sei como passar os dados do meu gridView para ele salvar alguem pode ajudar.

        }

      }

    u.s.d.webe@gmail.com

    sexta-feira, 23 de agosto de 2013 14:21

Todas as Respostas

  • Coloca o nome das propriedades da classe Venda para te ajudarmos...

    Leonardo Lourenço Silva
    MCT, MCSD, MCPD, MCTS, MCP, MTA
    netcoders.com.br
    leolosi.wordpress.com

    sexta-feira, 23 de agosto de 2013 14:27
  • Brother,

    Seguinte... eu faria da segunte forma, criaria um classe chamada (inserindo_TO) e suas propriedades

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;

    namespace WebApplication1
    {
        public class inserindo_TO
        {
            private string Nome;

            public string Nome
            {
                get { return Nome; }
                set { Nome = value; }
            }

    }

    Depois criaria uma outra classe com o nome de Inserindo_ADO para inserir os dados no banco usando as propriedades da classe acima. Segue abaixo.


    public string InserirReservados(inserindo_TO to)
            {

                conn.Open();
                SqlTransaction transacao = conn.BeginTransaction();
                StringBuilder sb = new StringBuilder();
                String sqlProduto = "INSERT INTO [dbo].Reservado ([Nome]) VALUES (@Nome)";
                SqlCommand cmdProduto = new SqlCommand(sqlProduto, conn, transacao);
                cmdProduto.Parameters.AddWithValue("@Nome", to.Nome);
                cmdProduto.ExecuteNonQuery();
                transacao.Commit();
                conn.Close();
                return "";
            }

    No botão do formulário, eu faria assim.

    string nome = GridView1.Rows[0].Cells[3].Text; // aqui pegando a linha do gridview

    //estanciando as classe abaixo

    inserindo_TO to = new inserindo_TO();

    inserindo_ADO Ado = new inserindo_ADO();

    to.Nome = nome; // isso você pode variar com seus campos do grid, aew fica a sua escolha.

    Ado.InserirReservados(to);

    Se for útil, não esqueça de marcar !

    Grande Abraço!


    Jimi Anderson


    • Editado Anderson Mac sexta-feira, 23 de agosto de 2013 21:31 Erro de digitação!
    • Sugerido como Resposta J Lucas sábado, 24 de agosto de 2013 01:05
    sexta-feira, 23 de agosto de 2013 21:30
  •   Entao cara mas eu nao faço a conexao com banco, estou trabalhando com EntityFramework e nao preciso fazer essa conexao como coloquei acima

       o metodo CadastrarVendas ja insere os dados no banco. So nao sei como pegar os dados do gridView, pe passe seu contato que te envio o codigo pra entender melhor e me ajudar cara.

    public VENDA CadastrarVendas(VENDA venda)

    {

         Add(venda);

           SaveChanges();

           return venda;

    }

    sábado, 24 de agosto de 2013 12:16
  • Não sei, posso estar enganado, mas veja o seguinte. O Grid nada mais é do que um componente que visualiza em formato tabular, dados provindos de um Banco de Dados, certo? Tenho visto muitos sistemas por aí, com gente fazendo um monte coisas em um Grid, para formatar um dado ou mesmo inserir ou reinserir. Bem, eu no seu lugar iria buscar essa informação direta no BD. Sei lá, faz uma LINQ, LINQ com LÂMBDA, só LÂMBDA, enfim, como vc está trampando com EF, faça isso, corre um foreach nesse cara e pimba! Solução resolvida. Bem, eu procuro usar o máximo possível o BD. Se estiver usando MVC, melhor ainda, pois vc terá um processamento na camada BD, desconectada do restante da aplicação o que te daria uma performance excelente em relação a web forms. Essa seria a minha forma de trampo, como disse, posso estar enganado, mas é assim que trampo.
    domingo, 25 de agosto de 2013 14:46