none
problema mostrando dados num GridView RRS feed

  • Pergunta

  • Caros,

    tenho um problema que parece simples de resolver, só que não sei bem como resolvê-lo por isso vim pedir ajuda cá no fórum, e é o seguinte.

    tenho uma tabela que tem valores guardados e são como dados de premios de lotaria. são no máximo 3 valores sorteados, e estes valores eu os controlo por uma flag e tenho um campo datetime que utilizo para ajudar no select, onde ordeno pela data de forma "ASC". a ideia no select saber o que foi gerado primeiro será o primeiro premio, o segundo, e o terceiro assim sucessivamente. até aqui tudo bem.

    o meu problema está na hora que pretendo mostrar estes valores sorteados num gridview. a minha ideia é colocar para alem dos campos do select, adicionar mais uma coluna na grid onde pretendo dizer o primeiro classificado, o segundo e o terceiro classificado como está ordenado no select.

    alguma ajuda??

    terça-feira, 12 de novembro de 2013 12:52

Respostas

  • Se eu entendi bem, você que a grid exiba mais um campo informando qual o prêmio:

    ex:

             Data Sorteio       | Premio | Valor                | Vencedor

    12/11/2013-15:02:02 |     1º    | R$250.000,00  | Enilton da Silva Sauro

    12/11/2013-15:02:45 |     2º    | R$150.000,00  | Arilma da Silva Sauro

    É isso?

    Se for basta inserir uma coluna autoincremental na propriedade de sua tabela> Não sei exatamente como fazer isso na GridView. Dei uma olhada aqui nas propriedades nativas da GridView e não encontrei nada parecido, mas encontrei essas duas postagens que ensinam como fazer algo desse naipe.

    http://www.dotnetspider.com/forum/202680-Auto-increment-slno-gridview.aspx

    http://www.ederssilva.com.br/post/2011/08/12/Adicionando-uma-coluna-AutoIdentity-%28Auto-Numerico%29-no-DataTable.aspx

    Espero ter ajudado:

    • Marcado como Resposta flaviodantas terça-feira, 12 de novembro de 2013 22:13
    terça-feira, 12 de novembro de 2013 18:00

Todas as Respostas

  • Tipo eu sugeria ordenares os dados primeiro pelo campo do lugar e depois pelo campo datetime
    tipo mas ou menos assim: "

    Select * from tb_premiolotaria order by lugar, coluna_datetime


    por default ele ordena por ascending. espero que ajude ou passa uma parte do teu codigo quem sabe outra pessoa possa ajudar
    • Sugerido como Resposta Vivaldo Cândido terça-feira, 12 de novembro de 2013 14:46
    terça-feira, 12 de novembro de 2013 14:46
  • cara o select ja está montado.

    imagina o meu select dessa forma: Select nome, numero from tb_PremioLotaria order by coluna_datetime.

    nao tenho lugar pq a forma de sortear é aleatorio, e faço 3 sorteios e guardo na base de dados. a unica forma que tenho de controlar é atraves do campo datetime que me mostra a ordem que sairam. o primeiro lugar tem uma data mais aintiga, até o terceiro lugar com a data e hora mais recente. com base nisso sei qual é o 1º, 2º e 3º.

    o meu problema está ao mostrar os dados num GRIDVIEW. eu quero, para alem de mostrar no grid os Nomes e Numeros, mas também adicionar uma outra coluna onde, nao sei como, colocar os lugares. primeiro, segundo e terceiro conforme a ordem.. será que tem como fazer isso??

    terça-feira, 12 de novembro de 2013 17:23
  • Se eu entendi bem, você que a grid exiba mais um campo informando qual o prêmio:

    ex:

             Data Sorteio       | Premio | Valor                | Vencedor

    12/11/2013-15:02:02 |     1º    | R$250.000,00  | Enilton da Silva Sauro

    12/11/2013-15:02:45 |     2º    | R$150.000,00  | Arilma da Silva Sauro

    É isso?

    Se for basta inserir uma coluna autoincremental na propriedade de sua tabela> Não sei exatamente como fazer isso na GridView. Dei uma olhada aqui nas propriedades nativas da GridView e não encontrei nada parecido, mas encontrei essas duas postagens que ensinam como fazer algo desse naipe.

    http://www.dotnetspider.com/forum/202680-Auto-increment-slno-gridview.aspx

    http://www.ederssilva.com.br/post/2011/08/12/Adicionando-uma-coluna-AutoIdentity-%28Auto-Numerico%29-no-DataTable.aspx

    Espero ter ajudado:

    • Marcado como Resposta flaviodantas terça-feira, 12 de novembro de 2013 22:13
    terça-feira, 12 de novembro de 2013 18:00
  • Isso depende da forma como você recupera o seu select se estiver usando List é muito simples olha este exemplo :

     var a = DateTime.Now.AddDays(3);
                                    var b = DateTime.Now.AddDays(2);
                                    var c = DateTime.Now.AddDays(1);
    
                                    List<DateTime> lista = new List<DateTime>();
                                    lista.Add(a);
                                    lista.Add(b);
                                    lista.Add(c);
    
                                    var teste = lista.OrderBy(i => i.Date).ThenBy(i => i.TimeOfDay);
    
                                    foreach (var datas in teste)
                                    {
                                        MessageBox.Show(datas.ToString());
                                    }
    O que você usa para recuperar sua select, veja se o exemplo não dê uma luz.

    terça-feira, 12 de novembro de 2013 18:12
  • Enilton,

    era exatamente isso que procurava. como no teu exemplo

    Data Sorteio       | Premio | Valor                | Vencedor
    
    12/11/2013-15:02:02 |     1º Lugar   | R$250.000,00  | Enilton da Silva Sauro
    
    12/11/2013-15:02:45 |     2º Lugar   | R$150.000,00  | Arilma da Silva Sauro
    
    12/11/2013-15:03:10 |     3º Lugar   | R$90.000,00  | Ficticio Carlos Pessoa
    

    eu precisava adicionar o campo Premio, onde no grid adicionei uma nova coluna e converti em templatefield, e nele fiz o seguinte:

    <asp:TemplateField HeaderText="Posição">
      <ItemTemplate>
           <%#Container.DataItemIndex +1 %>º Lugar
      </ItemTemplate>
    </asp:TemplateField>
    isso faz com que o campo apareça como pretendo. Agradeço pela ajuda.

    terça-feira, 12 de novembro de 2013 22:13