Usuário com melhor resposta
problema mostrando dados num GridView

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??
Respostas
-
Se eu entendi bem, você que a grid exiba mais um campo informando qual o prêmio:
ex:
Data Sorteio | Premio | Valor | Vencedor12/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
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
-
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??
-
Se eu entendi bem, você que a grid exiba mais um campo informando qual o prêmio:
ex:
Data Sorteio | Premio | Valor | Vencedor12/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
-
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.
-
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.