none
Mostrar uma Lista dataSet usando o mvc3 RRS feed

  • Pergunta

  • Boa noite, Galera!

    Estou com um problema para listar um DataSet na minha view(mvc3).

    na minha controller já estou retornando a lista coloquei como parametro um registro que já sabia que tinha no banco. Esta lista está vindo de um WebService.

    public ActionResult Index(string empreendimentos,string torre)
            {
    
               var lista = webService.TabelaDeVendas("C380", "1");
    
               return View(lista);
               
            }

    Na minha View eu gostaria de saber como listar estes registros. eu fiz desta forma mas na hora de lista na tela não estou sabendo mostrar

    @model System.Data.DataSet 
    @using System.Data;
    
               
    @{
        ViewBag.Title = "Index";
        Layout = "~/Views/Shared/_LayoutFrontEnd.cshtml";
    }
    
     
    <h2>Index</h2>
    
    
    @foreach (var dc in Model.Tables)
    {
        
               
    }

    Dentro do foreach não estou sabendo pegar a minha propriedade para mostrar na tela.

    Grato,

    terça-feira, 29 de maio de 2012 22:46

Respostas

Todas as Respostas

  • boa noite Cleiton, voce pode usar VIEWDATA para passar objetos para sua VIEW aqui vai exemplo:

    Controller

    //novo nome da minha view
            public ActionResult novo()
            {
                //eu tenho uma classe de conexao e estancio ela
                ClsConexao con = new ClsConexao();
    
                //ViewData recebe uma DataTable do meu metodo retornosql.
                //ViewData 'ListaDataSet' é um nome que do para chave
                ViewData["ListaDataSet"] = con.retornoSql("select * from usuario");
                return View();
            }

    View

    @using System.Data
    @{
        ViewBag.Title = "novo";
    }
    @{
        //agora eu recupero meu DataTabe.
        //(DataTable) falo po compilador que o tipo é DataTable
        DataTable T =(DataTable) ViewData["ListaDataSet"];
        
        //agora eu varro a tabela e imprimindo na tela
        foreach (DataRow Linha in T.Rows)
        {
            foreach (DataColumn Coluna in T.Columns)
            {
                Response.Write(Linha[Coluna] + "<br>");
            }
        }
    }
    

    espero te ajudado, qualquer coisa posta ai de novo.

    att.

    terça-feira, 29 de maio de 2012 23:54
    Moderador
  • <ul>

    @foreach (var dc in Model.Tables) { <li>@dc.Nome</li> }

    </ul>



    http://www.linkedin.com/pub/murilo-kunze/44/191/455

    quarta-feira, 30 de maio de 2012 12:04
  • Welington,

    Obrigado era isso mesmo que eu precisava.

    Me ajudou muito.

    Abraço,

    quarta-feira, 30 de maio de 2012 13:02
  • De nada , Se a resposta foi útil, por favor marque como útil.

    quarta-feira, 30 de maio de 2012 20:43
    Moderador
  • Welington deixa eu tirar uma dúvida, pra mim mostrar um campo da tabela especifo, tipo camo Nome?

    Grato,

    quinta-feira, 31 de maio de 2012 12:41
  • Cleiton voce pode fazer assim, continuando com mesmo codigo acima

    //cria um array de datarow, 'T' é sua tabela. usa o metodo select. 'nome' é a coluna
        DataRow[] rows = T.Select("", "Nome");
    
        //varre seu array '[1]' é a posicao da coluna, e imprime na tela
        foreach (var item in rows)
        {
            Response.Write(item[1]+"<br>");
        }

    ok

    quinta-feira, 31 de maio de 2012 14:38
    Moderador
  • Welignton, eu peguei este dataset e passei para um objeto que eu criei e estou listando ele na view, mas estou com um problema para ordernar este objeto. já tentei de duas formas mas não estou conseguindo voce tem alguma solução para o meu problema, ja procurei de de tudo mas ainda não consegui nada. Vou enviar o código da minha controller.

    Abraço,

    public ActionResult ListarTorre(string emp, string tor)
            {
    
                string empreendimentos = emp;
                string torre = tor;
    
                DataSet d = webVendas.EspelhoDataSet(empreendimentos, torre, "");
                DataView dv = new DataView(d.Tables["TB_UNIDADES"]);
                dv.Sort = "andar Desc";
                DataTable table = dv.Table;
                
                Torre torre2 = new  Torre();
                
                using (DataTableReader dtRdr = table.CreateDataReader())
                {
                    string AndarAtual = "";
                    int i = 0;
                    dtRdr.Read();                
                    
                    do
                    { 
                        Andar andar2 = new Andar();
                        AndarAtual = dtRdr["andar"].ToString();
    
                       
    
                        do 
                        {
                            if (AndarAtual != dtRdr["andar"].ToString())
                            {
                                break;
                            }
                            Unidade u = new Unidade();
                            u.ANDAR = dtRdr["andar"].ToString();
                            u.CODIGO_EMPREENDIMENTO = dtRdr["codigoempreendimento"].ToString();
                            u.CODIGO_TORRE = dtRdr["codigotorre"].ToString();
                            u.DESCRICAO_EMPREENDIMENTO = dtRdr["descricaoempreendimento"].ToString();
                            u.DESCRICAO_STATUS_UNIDADE = dtRdr["descricaostatusunidade"].ToString();
                            u.DESCRICAO_TORRE = dtRdr["descricaotorre"].ToString();
                            u.NUMERO_UNIDADE = dtRdr["numerounidade"].ToString();
                            u.PRUMADA = dtRdr["prumada"].ToString();
                            u.STATUS_UNIDADE = dtRdr["statusunidade"].ToString();
                            u.CODIGO_UNIDADE = dtRdr["codigounidade"].ToString();
                            u.METRAGEM = dtRdr["metragem"].ToString();
                            u.VAGAS = dtRdr["vagas"].ToString();
                            u.REGIAO = dtRdr["regiao"].ToString();
                            u.PERMUTA_UNIDADE_SAP = dtRdr["permutaunidadesap"].ToString();
                                                    
                            i++;                        
                            andar2.Unidades.Add(u);                                                
    
                        } while (dtRdr.Read());
    
    
                        andar2.Unidades = andar2.Unidades.OrderByDescending(u => u.ANDAR).ToList();
                        torre2.Andares.Add(andar2);
                        
                                            
                    } while (i < table.Rows.Count);
                }
    
                ViewBag.Nome = torre2.Nome;
                ViewBag.Empreendimentos = torre2.Empreendimento;            
                
                return View(torre2.Andares);
    
            }

    as duas formas que eu tentei mas sem sucesso.

    andar2.Unidades = andar2.Unidades.OrderByDescending(u => u.ANDAR).ToList();

    dv.Sort = "andar Desc";



    segunda-feira, 4 de junho de 2012 19:50
  • Cleiton, não consegui entender. Qual objeto que voce quer ordernar?

    segunda-feira, 4 de junho de 2012 23:55
    Moderador
  • Welington, Obrigado eu consegui ordenar.

    O problema era assim eu tenho um objeto torre dentro dela eu tenho um lista andar que tem um lista apartamentos. E eu precisava ordernar por andar, ele não estava respeitando. Porque o Andar repetia varias vezes ex: 1º andar tem o apartamento 101,102,103,104 que estava dentro de apartamentos.

    Ai o que eu fiz eu criei uma propriedade dentro de torre pra recebe o andar ai eu cosegui ordernar, resumindo eu peguei a propriedade que estava dentro de um lista e trouxe para fora, onde tivesse controle dela para a ordenação.

    Fica a dica e agradeço sua atenção.

    Valeu!!

    terça-feira, 5 de junho de 2012 12:37
  • Ok. Nao esqueca de marca como resolvido.

    att.

    • Marcado como Resposta cleiton costa segunda-feira, 11 de junho de 2012 12:51
    terça-feira, 5 de junho de 2012 13:45
    Moderador